剧本看起来像:
- hosts: all
tasks:
- name: "run on all hosts,1"
shell: something1
- name: "run on all hosts,2"
shell: something2
- name: "run on one host, any host would do"
shell: this_command_should_run_on_one_host
- name: "run on all hosts,3"
shell: something3
我知道使用命令行选项--limit
,我可以限制为一个主机,是否可以在playbook中执行此操作?
答案 0 :(得分:14)
对于任何(默认情况下它将与列表中的第一个匹配)主持人:
- name: "run on first found host"
shell: this_command_should_run_on_one_host
run_once: true
对于特定主持人:
- name: "run on that_one_host host"
shell: this_command_should_run_on_one_host
when: ansible_hostname == ‘that_one_host’
或inventory_hostname
(Ansible清单中定义的主机名)而不是ansible_hostname
(目标计算机上定义的主机名),具体取决于您要使用的名称。