我无法弄清楚如何group_by
在我的剧本中使用。我有一个受限于 RHEL6 的角色,我有兴趣了解如何group_by
将 RHEL6 机器与 RHEL5 机器分开。我制作了一个复合键,在我的调试任务中我可以看到它已正确设置。但是即使调试任务吐出的复合键是“RedHat-6”,playbook 也会跳过该部分hosts: RedHat-6
- hosts: abc
user: myuser
sudo: yes
gather_facts: yes
tasks:
- group_by: key={{ ansible_distribution }}-{{ ansible_distribution_version | truncate(1, True, '') }}
- debug: "msg={{ ansible_distribution }}-{{ ansible_distribution_version | truncate(1, True, '') }}"
- hosts: RedHat-6
user: myuser
sudo: yes
gather_facts: yes
roles:
- somerhel6onlyrole
(我的剧本中还有一个关于 RedHat-5 的部分,但它只是调用fail
)
我永远无法让 group_by 主机匹配,它总是跳过。输出如下所示:
TASK: [debug msg={{ansible_distribution}}-{{ansible_distribution_version | truncate(1, True, '')}}] ***
ok: [abchost1] => {
"msg": "RedHat-6"
}
ok: [abchost2] => {
"msg": "RedHat-6"
}
PLAY [RedHat-6] ***************************************************************
skipping: no hosts matched
PLAY [RedHat-5] ***************************************************************
skipping: no hosts matched
我使用 group_by 是错误的还是误解了它的目的?我对ansible比较陌生;我使用的版本是 1.5.3。同样,我可以通过简单地以不同的方式验证来解决问题,但我想知道如何正确使用 group_by。预先感谢您的帮助!