单角色多个主机执行不同的任务

时间:2019-02-15 04:44:33

标签: ansible

我有一个剧本,其中一个角色有多个任务,我想将任务说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。我怎样才能做到这一点。

2 个答案:

答案 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