Ansible loop в Playbook для создания пользователя в RHEL - PullRequest
0 голосов
/ 07 октября 2019

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

 ---
 - name: Add a user RHEL
   hosts: dev
   gather_facts: no
   vars:
     username:
       - secadmin
       - edpemr
     uid:
       - 1001
       - 1002
     groups:
       - wheel
       - wheel2

 tasks:
 - name: Add user "secadmin" to the remote server
   user:
     name: "{{ item.username }}"
     comment: "Privileged User"
     uid: "{{ item.uid }}"
     groups: "{{ item.groups }}"
     append: yes
     shell: /bin/bash
     generate_ssh_key: yes
     ssh_key_bits: 2048
     ssh_key_file: .ssh/id_rsa.key
   loop: {{ ?? }}

Я не могу изменить способ определения переменных vars, это должно быть так:

   vars:
     username:
       - secadmin
       - edpemr
     uid:
       - 1001
       - 1002
     groups:
       - wheel
       - wheel2

Мое ожидание: Задача будет выполняться 2 раза с двумя различными данными в зависимости от количества существующих переменных.

tasks:
- name: Add user "secadmin" to the remote server
  user:
    name: secadmin
    comment: "Privileged User"
    uid: 1001
    groups: wheel
    append: yes
    shell: /bin/bash
    generate_ssh_key: yes
    ssh_key_bits: 2048
    ssh_key_file: .ssh/id_rsa.key

tasks:
- name: Add user "secadmin" to the remote server
  user:
    name: edpemr
    comment: "Privileged User"
    uid: "1002
    groups: wheel2
    append: yes
    shell: /bin/bash
    generate_ssh_key: yes
    ssh_key_bits: 2048
    ssh_key_file: .ssh/id_rsa.key

1 Ответ

1 голос
/ 07 октября 2019

Вы должны создать наборы списков, такие как:

users:
  - login: secadmin
    uid: 1001
    groups: wheel
  - login: edpemr
    uid: 1002
    groups: wheel2 

Playbook:

- hosts: localhost
  vars:
    users:
      - login: secadmin
        uid: 1001
        groups: wheel
      - login: edpemr
        uid: 1002
        groups: wheel2
  tasks:
  - name: Add users 
    user:
      name: "{{ item.login }}"
      comment: "Privileged User"
      uid: "{{ item.uid }}"
      groups: "{{ item.groups }}"
      append: yes
      shell: /bin/bash
    loop: "{{ users }}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...