我有一个playbook.yml
:
- name: Play1
hosts: vm1
...
tags: pl1
- name: Play2
hosts: vm2
...
tags: pl2
现在想象一下场景,vm1
已经死了,我暂时不关心它,我想只跑这样的第二场比赛:
ansible-playbook playbook.yml --tags=pl2
但是现在,Ansible在收集vm1
的事实时失败了。有没有办法指示Ansible更聪明,完全忽略其他剧本?为什么它甚至会这样做?
答案 0 :(得分:3)
如果您真的认为这是管理服务器的最佳方式......
使用gather_facts: false
并明确添加setup
任务:
- name: Play1
gather_facts: no
hosts: vm1
pre_tasks:
- setup:
...
tags: pl1
答案 1 :(得分:0)
我认为您正在寻找的是--limit
选项,该选项仅在指定的主机和/或组上运行任务。
ansible-playbook playbook.yml --limit=vm2
https://docs.ansible.com/ansible/2.9/user_guide/intro_patterns.html