我希望能够从 hosts 文件中获取组中第一个主机的前 8 个字符。因此,在下面的示例中,我希望分配一个变量xx33sx01
。我知道我可以使用 inventory_hostname 来获取主机,但它会返回所有 4 个,而我只需要第一个主机和前 8 个字符。
Ansible 示例清单(INI 样式):
[TEST1]
xx33sx0101.domain.com
xx33sx0102.domain.com
xx33sx0103.domain.com
xx33sx0104.domain.com
ansible-playbook /local_home/scripts/test.yml -i ~/hosts -e "target=TEST1" -K
答案1
要获取组中第一个主机名的前 8 个字符,请尝试
- debug:
msg: "{{ groups[target_group][0][:8] }}"
vars:
target_group: TEST1
(未经测试)
- 当然,要使调试任务正常工作,该组必须对剧本可用。例如
- hosts: all
tasks:
- debug:
msg: "{{ groups[target_group][0][:8] }}"
- 根据库存执行订货会影响选择。