Импорт пользовательских переменных из нескольких источников в Ansible - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу знать, как я могу импортировать переменные учетной записи пользователя на нескольких уровнях, используя 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?

...