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
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:
50
roles/devops/playbook.yml
Normal file
50
roles/devops/playbook.yml
Normal 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 }}
|
||||
Reference in New Issue
Block a user