У меня есть группа серверов баз данных, и мне нужно создать на некоторых из них указанных 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 Большое спасибо за вашу помощь и советы!