根据Ansible剧本中的主机运行角色

根据Ansible剧本中的主机运行角色,ansible,ansible-inventory,Ansible,Ansible Inventory,我必须使用两个剧本,因为我的主持人正在为每个角色改变。是否有任何解决办法,以便我可以在一个剧本中完成这项工作 剧本-1: - name: Install & configure SSH on servers gather_facts: True sudo: yes hosts: zookeeper roles: - { role: discover-zookeeper, tags: ['discover-zookeeper']} 剧本-2: - na

我必须使用两个剧本,因为我的主持人正在为每个角色改变。是否有任何解决办法,以便我可以在一个剧本中完成这项工作

剧本-1:

- name: Install & configure SSH on servers
  gather_facts: True
  sudo: yes
  hosts: zookeeper
  roles:
  - { role: discover-zookeeper,         tags: ['discover-zookeeper']}
剧本-2:

- name: Install & configure SSH on servers
  gather_facts: True
  sudo: yes
  hosts: kafka
  roles:
  - { role: discover-kafka,             tags: ['discover-kafka']}
我曾尝试过这种方法,但似乎Ansible的工作原理并非如此

playbook.yml:

- name: Install & configure SSH on servers
  gather_facts: True
  sudo: yes
  roles:
  - { role: discover-zookeeper,         tags: ['discover-zookeeper'],   hosts: zookeeper}
  - { role: discover-kafka,             tags: ['discover-kafka'],   hosts: kafka}

如果我没看错的话,你说的是两个剧本,而不是两本剧本。因为我理解你的问题,剧本正是你想要的。例如:

- hosts: hostA
  roles:
    - roleA
    - roleB
- hosts: hostB
  roles:
    - roleC
    - roleD

(注释:请使用“(cmd/ctrl)+k”以更好的可读代码样式格式化)

Thakns!这就是我需要的!!