问题标签 [ansible-facts]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1223 浏览

ansible - Ansible 模块如何返回事实

我编写了需要设置一些事实的 Ansible 模块 my_module。

我在模块中定义了下面的代码

现在在执行 my_module 后的剧本中我想访问新的事实,但它没有定义

正确的方法是什么?

0 投票
2 回答
4323 浏览

ansible - localhost(Ansible master)的hostvars只抓住了一些事实

我的剧本中有这一行:

由于某种原因,它只抓住了一些事实,主要是围绕主人的设置。

收集到的事实示例:

不幸的是,它没有获取我得到的完整变量列表:

我需要完整的事实列表,因为我试图利用主机(Ansible master)时间来为我生成的文件添加时间戳。这种行为似乎与我在其上运行它的另一台机器不一致,我终生无法确定原因。任何指导将不胜感激。

0 投票
1 回答
1642 浏览

ansible - How can I get Ansible to group hosts based on Ansible facts?

I want to generate a report (probably using template) that groups my hosts based on facts about them.

Say I had the following servers in my /etc/ansible/hosts (ansible_distribution and ansible_distribution_version facts as specified in brackets):

What I want to do is end up with a file looking like:

I don't know whether it would be better to try:

A) looping through play_hosts and pulling out the facts and writing into a new variable as ('fact1', 'fact2', 'hostname') and then looping over that new variable with groupby within my jinja2 template to generate the report.

B) Sorting them all in an ansible task, and then handing a pre-grouped array of arrays to template, and formatting that.

... and I can't work out how to do either.

0 投票
0 回答
1160 浏览

ansible - 如何在playbook中将另一台play主机的IP地址设置得更高?

在文档http://docs.ansible.com/ansible/playbooks_variables.html#fact-caching

我的清单主机,如 IP 列表,没有主机名。我只能通过 IP 引用“hostvars”

但是我如何参考更高的(以前的)“播放”来获取 IP 地址?...

没有什么比这更容易了吗?

0 投票
2 回答
12520 浏览

amazon-web-services - Amazon Linux 机器 - Ansible ansible_distribution* 变量主要版本分布

我正在使用Ansible:2.2.0.0

我有3台机器:

两个 vagrant 盒子(一个 CentOS 7.x 和一个 Ubuntu 14.04)和
第三个盒子是 EC2 Amazon Linux 实例(Amazon Linux AMI 版本 2016.03)。

在这些框中,我正在运行以下命令并获得有效输出(如下所示):

中央操作系统

Ubuntu

Amazon EC2 实例/盒子

在我的 Ansible playbook / templates/yum.repos.d.file.j2 文件之一中,我使用{{ ansible_distribution_major_version }}变量并在 .repo 文件中使用它的baseurl值作为 CentOS/Amazon EC2 实例的属性值when: ansible_distribution == "CentOS" or ansible_distribution == "Amazon".

baseurl=https://packagecloud.io/company/packages/telegraf/el/6/$basearch

PS:我不是在寻找 Ubuntu(因为在我的剧本中使用 apt-get 来设置 apt-get 源列表和安装软件包时,这部分工作正常)。



我的问题:为什么 ansible facter 变量没有为 Amazon EC2 实例的版本
设置任何有效的有效版本?ansible_distribution_major_release我可以使用什么facter_*/ansible_*可以在所有 3 种操作系统类型中使用哪个。

PS:当我在其中使用baseurl's 值../el/6/..时(在 yum.repos.d/target-pacakge.amazon-os.repo 文件中), yum install 可以很好地在 Amazon linux 机器上安装软件包(不过,../el/7/..在 baseurl中使用没用)。有关更多详细信息,请参见此处https ://packagecloud.io/docs#os_distro_version (在标题下:Enterprise Linux(CentOS、RedHat、Amazon Linux)

0 投票
2 回答
88317 浏览

ansible - 如何从 Ansible 中设置模块的输出中获取列表的第一个元素?

我从设置模块收到以下数据:

我想检索第一个值ansible_processor并在 Jinja2 模板中使用它。

如果我使用{{ ansible_processor }},它会给我两个值:

但我只想要第一个。

0 投票
2 回答
8012 浏览

ansible - 运行 Ansible play 时未定义的变量

我正在运行 YAML 文件中定义的多个 ansible 播放。

在最后一场比赛中,我收到以下错误:

我是否需要通过收集事实或其他内容来更改任何内容ansible.cfg

0 投票
1 回答
116 浏览

amazon-web-services - Ansible Tower 未在 ec2-remote-facts 模块中正确注册变量

当我不在 Ansible Tower 上运行 ec2-remote-facts 模块时,它可以正常工作。下面的第一个示例(不使用 Tower)包含我在后续任务中使用的所有 block_device_mapping 信息。

从长远来看,这是我要使用 Tower 的一个大问题。我的代码对于两个示例都是相同的。任何可以引导我走向正确方向的想法。

我唯一的想法是,由于它不是核心模块,Ansible Tower 并没有完美地同步到模块的最新代码。但我很困惑。谢谢!

Ansible 版本 - ansible 2.2.0.0(在 Ubuntu 上运行)

Ansible Tower 版本 - Tower 版本 3.0.3(在 Centos 上运行)

---下面的例子----

-Ansible(不使用 Tower)-

Ansible Tower(注意它缺少 block_device_mapping 代码块)

0 投票
2 回答
1049 浏览

windows - 对windows的ansible支持在哪里?

我尝试为不同的系统编写 yml。

在 ansuble_os_family 和 ansible_distribution 我看不到 Windows。我应该如何为 Windows 的任务编写条件?

谢谢。

0 投票
1 回答
1414 浏览

ansible - 如何在剧本中使用 vsphere_guest 结果中的 ipaddresses 变量?

我想使用的变量ipaddressesvsphere_guest我想首先在 vSphere 中使用虚拟机的名称来获取其 IP 地址,然后使用该 IP 地址在该机器上运行 Ansible 播放。

到目前为止,我有:

我应该如何进行?