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

Run roles according to host from Ansible playbook

我必须使用两本剧本,因为我的主持人会针对每个角色进行更改。有什么解决方法可以让我在单个剧本中完成这项工作吗??

剧本-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”以更易读的代码样式进行格式化)