Использование цикла Ansible для создания нескольких пользователей: неопределенная ошибка - PullRequest
0 голосов
/ 26 сентября 2019

Я использую следующий код ansible для создания нескольких учетных записей пользователей Unix

--- - hosts: test become: true tasks: - name: more complex items to add several users user: name: "{{ item.name }}" uid: "{{ item.uid }}" groups: "{{ item.groups }}" state: present with_items: "{{ user_details }}"

Я храню информацию о пользователях, используя отдельный файл переменной, как показано ниже

  `cat /etc/ansible/vars.yml
   ---

   user_details:
       - { name: testuser1, uid: 1002, groups: "admin, logs" }
       - { name: testuser2, uid: 1003, groups: logs: }`

Для выполнения вышеприведенного списка воспроизведения я попытался выполнить обе приведенные ниже команды

   sudo ansible-playbook /etc/ansible/userloop.yml -e /etc/ansible/vars.yml
   sudo ansible-playbook /etc/ansible/userloop.yml

, но обе команды не выполняются с ошибкой ниже

 fatal: [host-003]: FAILED! => {"msg": "'user_details' is undefined"}
 fatal: [host-004]: FAILED! => {"msg": "'user_details' is undefined"}

Как решить проблему?Я хочу сохранить отдельный файл переменных для хранения пользовательской информации, а не помещать их в один и тот же файл playbook.

Ответы [ 3 ]

1 голос
/ 26 сентября 2019

Вы пропускаете @ при прохождении vars.yml.Следовательно, ответчик не читает файл.Попробуйте команду ниже.У меня это работает.

sudo ansible-playbook /etc/ansible/userloop.yml -e @/etc/ansible/vars.yml
1 голос
/ 26 сентября 2019

Вы также можете ссылаться на несколько переменных файлов в плейбуках, как показано ниже

1 голос
/ 26 сентября 2019

Тип переменных указан в столбце «Параметр» модуля пользователь .Попробуйте структуру данных ниже

user_details:
  - {name: 'testuser1', uid: 1002, groups: ['admin', 'logs']}
  - {name: 'testuser2', uid: 1003, groups: ['logs']}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...