Как создать пользователей в среде с использованием ansible Inventory и модуля "htpasswd"
Я новичок в ANSIBLE. Я написал ответную роль для создания пользователя и пароля в "/etc/httpd/.htpasswd" следующим образом:
- name: htpasswd
htpasswd:
path: /etc/httpd/.htpasswd
name: dev
password: dev
group: apache
mode: 0640
become: true
Теперь я пытаюсь понять, как я могу установить переменную-заполнитель для имени пользователя и пароля для каждой среды для этой модели с помощью инвентаризации (или любым другим способом). Мол, если бы я запустил "ansible playbook -i инвентаризация /dev", то роль этой модели можно было бы установить:
- name: htpasswd
htpasswd:
path: /etc/httpd/.htpasswd
name: "{{ inventory.htpasswd.name }}"
password: "{{ inventory.htpasswd.password }}"
group: apache
mode: 0640
become: true
А в папке инвентаря для каждой среды будет файл "htpasswd" с таким именем и паролем:
name: dev
password: dev
У Ansible есть что-то подобное? Или может кто-нибудь объяснить мне, что лучшие практики?
1 ответ
По умолчанию каждый хост назначен all
группа по Ansible. С помощью следующей структуры вы можете определить групповые переменные на основе инвентаря.
- товарно-материальные запасы / DEV / хостов
- Запасы / DEV /group_vars/all.yml
- товарно-материальные запасы / постановка / хостов
- запасы / постановка /group_vars/all.yml
В inventories/dev/group_vars/all.yml
:
name: dev
password: dev
В inventories/staging/group_vars/all.yml
:
name: staging
password: staging
И затем в ваших задачах, ссылки на переменные с их именами:
- name: htpasswd
htpasswd:
path: /etc/httpd/.htpasswd
name: "{{ name }}"
password: "{{ password }}"
group: apache
mode: 0640
become: true