【发布时间】:2020-04-01 17:21:47
【问题描述】:
我想创建整个清单文件的剧本并将服务器分为 2 组:Windows 和 Linux(添加主机仅在 inv 上的第一台服务器上进行)
我试过这段代码:
- name: Linux Group
add_host:
name: "{{ item }}"
group: LinuxGroup
when: hostvars[" {{ item }} "]['ansible_system'] == 'Linux'
with_items: "{{ ansible_play_hosts_all }} "
- 此代码假设创建 linux 组 我尝试了其他条件,但没有成功。我想得到你的帮助。
PS:
我把代码改成这样:
tasks:
- name: Create linux group
add_host:
name: "{{ item }}"
group: LinuxGroup
when: hostvars[item].ansible_system == 'Linux'
with_items: "{{ ansible_play_hosts_all }} "
ignore_errors: yes
- name: ping to Linux
ping:
with_items: LinuxGroup
当我运行代码时,windows 服务器在“创建 linux 组”任务中被跳过,但我使用模块调试打印到组的项目并且有 windows 服务器。
【问题讨论】:
标签: ansible jinja2 ansible-inventory ansible-facts