Ansible — Playbook создание пользователя в Linux
Ansible Playbook
— это мощные сценарии автоматизации, которые организуют выполнение множества задач, назначают роли, определяют конфигурации и шаги развертывания, а также управляют переменными.
В рамках данного формата статей, я буду публиковать только playbook сценарии под различные нужны, которыми самолично пользуюсь.
Playbook создания пользователя и добавления его в указанные группы на Linux машине. В переменные (vars), задаются параметры на основе которых уже создается пользователь и назначается ему членство в группах.
---
- name:
hosts: linux_host
vars:
username: "username" # Имя пользователя, которого нужно создать
user_password: "password" # Пароль для пользователя (в незашифрованном виде)
group: "sudo" # В какие группы добавить пользователя (разделитель ,)
tasks:
- name: Получить информацию о пользователе
ansible.builtin.getent:
database: passwd
key: "{{ username }}"
register: user_info
ignore_errors: yes
- name: Получить информацию о группе
ansible.builtin.getent:
database: group
key: "{{ group }}"
register: group_info
ignore_errors: yes
- name: Отладка - показать информацию о пользователе
ansible.builtin.debug:
msg: "User info: {{ user_info }}"
- name: Отладка - показать информацию о группе
ansible.builtin.debug:
msg: "Group info: {{ group_info }}"
- name: Проверить, состоит ли пользователь в группе
set_fact:
user_in_group: "{{ group in user_info.entries.groups }}"
when: user_info is defined and user_info.entries is defined
- name: Добавить пользователя и задать ему пароль, если пользователя не существует
ansible.builtin.user:
name: "{{ username }}"
password: "{{ user_password | password_hash('sha512') }}" # Зашифровываем пароль
state: present
shell: /bin/bash
create_home: yes
when: user_info is undefined
- name: Добавить пользователя в группу sudo, если группа sudo существует.
ansible.builtin.user:
name: "{{ username }}"
groups: "{{ group }}"
append: yes
when: user_info.entries is defined and not user_in_group
Обсуждение
Нет комментариев.