Ansible include_role переменная область видимости - PullRequest
1 голос
/ 03 апреля 2020

У меня есть группа серверов баз данных, и мне нужно создать на некоторых из них указанных c пользователей базы данных.

Например, мне нужно следующее:

  • 1 пользователи только для чтения на всех серверах БД
  • 2 пользователи с правами чтения и записи только для группы 1
  • 1 пользователи с правами чтения только для группы 2

Идея состоит в том, чтобы иметь одну роль и применять ее роль в зависимости от конфигурации переменных.

Вот как я сейчас работаю:

playbook.yml:

- hosts: dbservers
  tasks:
    - name: Create database users
      include_role:
        name: create_db_users
      loop: "{{ db_users }}"

hosts

all:
  hosts:
    children:
      group1:
        hosts:
          server1
      group2:
        hosts:
          server2
      group3:
        hosts:
          server3
      dbservers:
        children:
          server1:
          server2:
          server3:

group_vars / dbservers.yml

db_users:
- db_username: ro_user1 

group_vars / group1.yml

db_users:
- db_username: rw_user1
- db_username: rw_user2

group_vars / group2.yml

db_users:
- db_username: rw_user1

Это не работает, потому что group1 и переменные group2 будут перезаписывать конфигурацию dbservers, и тогда у меня не будет моих пользователей с правами только на чтение для групп 1 и 2.

Как я могу использовать одинаковое поведение на всех серверах и только указанное c на других.

Является ли решение include_role + l oop настоящим решением здесь?

T Большое спасибо за вашу помощь и советы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...