--- # Задачи для роли devops # Автор: Сергей Антропов # Сайт: https://devops.org.ru # Генерация безопасного пароля для пользователя devops - name: "Генерация безопасного пароля для пользователя devops" set_fact: devops_user_password: "{{ lookup('password', '/tmp/devops_password length=' + devops_password.length | string + ' chars=ascii_letters,digits,punctuation') }}" no_log: true # Создание пользователя devops - name: "Создание пользователя devops" user: name: "{{ devops_user.name }}" home: "{{ devops_user.home }}" shell: "{{ devops_user.shell }}" groups: "{{ devops_user.groups }}" create_home: "{{ devops_user.create_home }}" state: "{{ devops_user.state }}" password: "{{ devops_user_password | password_hash('sha512') }}" become: true # Создание SSH директории для пользователя devops - name: "Создание SSH директории для пользователя devops" file: path: "{{ devops_ssh.ssh_dir }}" state: directory owner: "{{ devops_user.name }}" group: "{{ devops_user.name }}" mode: "{{ devops_ssh.ssh_dir_mode }}" become: true # Добавление SSH ключа в authorized_keys - name: "Добавление SSH ключа в authorized_keys" authorized_key: user: "{{ devops_user.name }}" key: "{{ devops_ssh_public_key }}" state: present manage_dir: false become: true when: devops_ssh_public_key is defined # Настройка sudo для пользователя devops (без пароля) - name: "Настройка sudo для пользователя devops без пароля" lineinfile: path: /etc/sudoers.d/devops line: "{{ devops_user.name }} ALL=(ALL) NOPASSWD: {{ devops_sudo.commands }}" create: true mode: '0440' validate: 'visudo -cf %s' become: true # Логирование успешного создания пользователя - name: "Логирование создания пользователя devops" debug: msg: "Пользователь {{ devops_user.name }} успешно создан с безопасным паролем и SSH доступом"