Попытка создать Ansible playbook для создания пользователя (пользовательский модуль) в системе RH / Cent (например, useradd).
Плейбук терпит неудачу каждый раз, когда я включаю параметр группы, несмотря на то, что установил значение группы, соответствующее значению параметра «имя» для нового пользователя. Если я оставлю параметр / значение группы, playbook будет работать.
Следует ли НИКОГДА использовать параметр группы при создании пользователя с собственной основной группой, которая соответствует их имени пользователя (те же значения)?
Если это так, и параметр group предназначен для исключения в таком случае использования, почему так много примеров Ansible Galaxy создают группы перед пользователями и добавляют туда пользователя группы? Другими словами, зачем добавлять имя группы пользователей перед учетной записью пользователя в тех случаях, когда не назначается другая основная группа?
- name: "Adding testuser_01 user"
user:
append: yes
# authorization:
comment: "testuser_01"
create_home: yes
expires: -1
# Starting at Ansible 2.6, modify user, remove expiry time
# Had a bug until 2.6.4 but now fixed.
# Currently supported on GNU/Linux and FreeBSD.
# CentOS /etc/default/useradd is empty string by default.
force: no
generate_ssh_key: no
group: 'testuser_01' # Optionally sets the user's primary group (takes a group name).
groups: nixadm
# hidden: no
# MacOS only - optionally hide the user from the login window and system preferences. Defaults yes
home: /home/testuser_01
# local: no # Read docs and check support
# login_class: # Optionally sets the user's login class, a feature of most BSD OSs.
move_home: no
name: testuser_01
non_unique: no
password: "{{ mypw }}"
password_lock: no
# profile: # Sets the profile of the user. Currently supported on Illumos/Solaris.
remove: no
# role: # Currently supported on Illumos/Solaris.
# seuser: # Optionally sets the seuser type (user_u) on selinux enabled systems.
shell: /bin/bash
# skeleton:
# ssh_key_bits:
# ssh_key_comment:
# ssh_key_file:
# ssh_key_passphrase:
# ssh_key_type:
state: present
system: no
uid: 1001
update_password: on_create
register: testuser_01_added
Вы можете посмотреть, что происходит внутри вашего дистрибутива.
После прочтения исходного кода модуля ответ на ваш вопрос в контексте CentOS:
-N
флаг для обхода любой потенциальной ошибки.При этом я бы не стал полагаться ни на один из этих механизмов и систематически создавал бы необходимые группы, прежде чем использовать их явно в user
модуль, потому что:
users
системная группа ...)