Files
DevOpsLab/roles/devops/tasks/main.yml
Сергей Антропов 30b69ce0ec
Some checks failed
Ansible Testing / lint (push) Has been cancelled
Ansible Testing / test (default) (push) Has been cancelled
Ansible Testing / test (minimal) (push) Has been cancelled
Ansible Testing / test (performance) (push) Has been cancelled
Ansible Testing / deploy-check (push) Has been cancelled
feat: добавлена роль devops и оптимизирована структура проекта
- Создана роль devops с функциями:
  * Создание пользователя devops
  * Генерация безопасного пароля (30 символов)
  * Настройка SSH доступа по ключу
  * Добавление в sudoers без пароля
  * Полная документация и тесты

- Оптимизирована структура проекта:
  * Удален Dockerfile из корня (сборка из dockerfiles/ansible-controller)
  * Заменены внешние образы на локальные ansible-controller
  * Обновлен Makefile для использования локальных образов
  * Зашифрован vault/secrets.yml с помощью ansible-vault

- Добавлена документация:
  * Руководство по работе с vault (docs/vault-guide.md)
  * Подробная документация роли devops
  * Примеры использования и тесты

- Улучшена безопасность:
  * Все секреты зашифрованы
  * Обновлен .gitignore для vault файлов
  * Добавлены инструкции по безопасности
2025-10-25 20:06:08 +03:00

58 lines
2.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
# Задачи для роли 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 доступом"