Я хочу знать, как я могу импортировать переменные учетной записи пользователя на нескольких уровнях, используя loops/arrays
и импортируя их все.
т.е. у меня есть универсальный модуль, в котором пользователи определены в roles/common/tasks/main.yml
как массив (или цикл, если точнее):
- name: add admin users on RHEL
user:
name: "{{ item.username }}"
comment: "{{ item.comment }}"
state: present
groups: wheel
shell: /bin/bash
password: "{{ item.password }}"
with_items: "{{ users }}"
when: ansible_facts["os_family"] == "RedHat"
tags: common
и все пользовательские атрибуты задаются как переменные, а переменные для этих пользователей выбираются из role / common / vars / main.yml
У меня также есть пользовательские переменные, определенные в group_vars / dev и group_vars / prd
И у меня также есть определенные пользователи, определенные на уровне хоста в host_vars/server1
Теперь проблема в том, что Ansible выбирает толькопользователей с одного уровня, в то время как я хочу собрать все пользовательские переменные со всех уровней, то есть системных администраторов, пользователей dev и конкретных пользователей хоста, и добавить их все, а не только из наиболее предпочтительного источника переменных.
В Puppet это достигается с помощью Hiera и hiera_hash
, что позволяет коллективно применять значения переменных со всех уровней hiera.
Как этого можно достичьс Ansible?