Ansible: каждая роль должна выполняться только в одной группе хостов - PullRequest
1 голос
/ 03 октября 2019

Цель состоит в том, чтобы запустить эту игру против всех хостов, но каждая роль должна выполняться только следующим образом:

  • lab01-4 для веб-серверов
  • lab01-5 для баз данных
  • lab01-6 для других

У нас есть несколько хостов в разных группах:

[webservers]
rhel-01
[databases]
rhel-02
[others]
rhel-03

У нас есть несколько ролей в одной игре с тегами:

- hosts: all
  become: yes
  roles:
    - { role: 'lab01-4', tags: 'webservers', hosts: 'webservers' }
    - { role: 'lab01-5', tags: 'databases', hosts: 'databases' }
    - { role: 'lab01-6', tags: 'others', hosts: 'others' }

Я вижу, что нет ключевого слова hosts в роли (https://docs.ansible.com/ansible/latest/reference_appendices/playbooks_keywords.html#role). Ansible игнорирует ключевое слово hosts и запускает игру без ошибок для всех хостов.

Есть предложения?

1 Ответ

0 голосов
/ 03 октября 2019

Q: «Каждая роль должна выполняться только следующим образом»

lab01-4 for webservers
lab01-5 for databases
lab01-6 for others

A: Например, запустить каждую игру следующим образом

- hosts: webservers
  become: yes
  roles:
    - lab01-4
- hosts: databases
  become: yes
  roles:
    - lab01-5
- hosts: others
  become: yes
  roles:
    - lab01-6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...