feat: добавлена роль devops и оптимизирована структура проекта
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

- Создана роль 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 файлов
  * Добавлены инструкции по безопасности
This commit is contained in:
Сергей Антропов
2025-10-25 20:06:08 +03:00
parent 5093d38c06
commit 30b69ce0ec
20 changed files with 997 additions and 132 deletions

50
roles/devops/playbook.yml Normal file
View File

@@ -0,0 +1,50 @@
---
# Пример playbook для роли devops
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
- name: "Создание пользователя devops с безопасным паролем и SSH доступом"
hosts: all
become: true
gather_facts: true
vars:
# Переменная для SSH ключа (должна быть передана из vault)
devops_ssh_public_key: "{{ devops_ssh_keys.public_key }}"
roles:
- devops
post_tasks:
- name: "Проверка создания пользователя devops"
command: "id {{ devops_user.name }}"
register: user_check
failed_when: user_check.rc != 0
changed_when: false
- name: "Проверка SSH директории"
stat:
path: "{{ devops_ssh.ssh_dir }}"
register: ssh_dir_check
- name: "Проверка authorized_keys"
stat:
path: "{{ devops_ssh.authorized_keys_file }}"
register: auth_keys_check
when: devops_ssh_public_key is defined
- name: "Проверка sudo прав"
command: "sudo -l -U {{ devops_user.name }}"
register: sudo_check
become: true
changed_when: false
- name: "Вывод результатов проверки"
debug:
msg: |
Пользователь {{ devops_user.name }} создан: {{ user_check.rc == 0 }}
SSH директория создана: {{ ssh_dir_check.stat.exists }}
{% if devops_ssh_public_key is defined %}
authorized_keys создан: {{ auth_keys_check.stat.exists }}
{% endif %}
Sudo права настроены: {{ sudo_check.rc == 0 }}