第二个play针对testB主机执行,在第二个play中只有一个task,即使用debug模块,输出了testC主机中的eth0网卡的IP信息,如你所见,我们可以借助hostvars在操作当前主机时输出其他主机中的facts信息,上例中使用hostvars加上清单中的主机名称再加上facts的key,即可获取到对应的facts信息,有了前文的总结作为...
在ansible/host_vars/redhat文件中定义如下 package: tree 1. 在ansible/grou_vars/redhat_s文件中定义如下 web: httpd 1. 在ansible/test.yml文件定义如下: --- - name: 111 hosts: b tasks: - name: install "{{web}}" yum: name: "{{web}}" state: present - name: stop "{{service}}" serv...
1. hostvars 获取某台指定的主机的相关变量。如果有一台web服务器的配置文件中需要指定db服务器的ip地址,我们假定这台db服务器的hostname为db.exmaple.com,ip地址绑定在eth0网卡上,我们可以通过如下方法在web服务器上调用db服务器的ip地址: {{ hostvars['db.example.com'].ansible_eth0.ipv4.address}} 需要注...
1. hostvars 2. inventory_hostname 3. inventory_hostname_short 4. groups 5. group_names 2. Ansible默认会提供一些内置的变量以实现一些特定的功能,我们称之为魔法变量。下面列举一些常用的魔法变量。 1.hostvars 该变量用于引用其他主机上收集的facts中的数据,或者引用其他主机的主机变量、主机组变量。其key为...
{{ hostvars[groups['master'][0]]['ansible_host'] }} hostvars是一个特殊的变量,它包含了Ansible在当前Playbook运行过程中,关于所有主机的所有变量,可以理解为一个大字典。关于每一台主机的具体信息,你可以通过hostvars[hostname]的方式进行访问。 groups是一个包含了所有分组及其成员主机的字典。比如在你的invent...
ansible除了inventory中内置的一堆不可被引用的设置类变量,还有几个全局都可以引用的内置变量,主要有以下几个:inventory_hostname、inventory_hostname_short、groups、group_names、hostvars、play_hosts、inventory_dir和ansible_version。 1)inventory_hostname 和 inventory_hostname_short分别代表的是inventory中被控节点...
然后编写如下 task,这样,在 ansible 执行 playbook 时,就会使用 inventory内的 hostname 变量和内置 groups 与 hostvars 字典将主机名-IP地址进行对应,然后通过 blockinfile 模块写入到 hosts 表内。 四、使用shell模块 Ansible 在执行 playbook 时,任务是按顺序执行的,同时 ansible 只提供了 when这种类似 if 的方法...
访问hostvars变量,需启用了fact缓存,下面的引用返回http://db.example.com主机的ansible_eth1.ipv4.address的值 {{ hostvars['db.example.com'].ansible_eth1.ipv4.address }} 可以利用hostvars和inventory_hostname输出当前主机的所有变量: - debug: var=hosts[inventory_hostname] ...
'_meta':{'hostvars':{'192.168.77.129':{'host_specific_var':'foo'},'192.168.77.130':{'host_specific_var':'bar'}}}# Empty inventory for testing.defempty_inventory(self):return{'_meta':{'hostvars':{}}}# Read the command line args passed to the script.defread_cli_args(self):parser...
1. hostvars:包含所有主机的变量,可以通过主机名进行访问。 2. group_names:包含当前主机所属的组列表。 3. inventory_hostname:当前主机在清单文件中的名称。 4. inventory_hostname_short:当前主机在清单文件中的名称,不包含任何域名。 5. play_hosts:当前扮演角色的所有主机列表。 6. ansible_play_batch:当前...