我有一个剧本,其中一个角色有多个任务,我想将任务说80%分配给第一台主机,其余20%分配给第二台主机,第一台和第二台主机将从
中挑选ansible-playbook -i 1.2.3.4, 2.3.4.5, update.yml
其中1.2.3.4
是第一服务器ip,2.3.4.5
是第二服务器ip。我怎样才能做到这一点。
答案 0 :(得分:0)
Playbook任务的执行可以通过标签或块来控制。我之前的答案与在少数主机上执行任务有关(我想念不明白)
例如 序列号:“ 80%”
这意味着所有任务将首先在80%的主机上执行,然后再在其余主机上执行。
要让剧本在少数主机上执行某些任务,而在少数主机上执行某些任务,则在将ansible_hostname设置为某些主机时可以使用
答案 1 :(得分:0)
回顾一下: 您扮演一个角色,执行10个任务。您要在服务器1上执行其中的6个,其余要在服务器2上执行的
一种方法是编写2种不同的剧本,其中包括要在指定主机上执行的任务。 另一个可能是在每个任务上使用标签,并通过--tags执行ansible并在游戏书级别指定它们
- hosts: all
tags:
- foo
role:
...
- hosts: all
tags:
- bar
role:
...
ref https://docs.ansible.com/ansible/latest/user_guide/playbooks_tags.html