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 файлов * Добавлены инструкции по безопасности
89 lines
3.2 KiB
YAML
89 lines
3.2 KiB
YAML
---
|
|
# Тесты для роли devops
|
|
# Автор: Сергей Антропов
|
|
# Сайт: https://devops.org.ru
|
|
|
|
- name: "Тестирование роли devops"
|
|
hosts: all
|
|
become: true
|
|
gather_facts: true
|
|
|
|
vars:
|
|
devops_ssh_public_key: "{{ devops_ssh_keys.public_key }}"
|
|
|
|
roles:
|
|
- devops
|
|
|
|
post_tasks:
|
|
# Тест 1: Проверка существования пользователя
|
|
- name: "Проверка существования пользователя devops"
|
|
command: "id {{ devops_user.name }}"
|
|
register: user_exists
|
|
failed_when: user_exists.rc != 0
|
|
changed_when: false
|
|
|
|
# Тест 2: Проверка домашней директории
|
|
- name: "Проверка домашней директории"
|
|
stat:
|
|
path: "{{ devops_user.home }}"
|
|
register: home_dir
|
|
failed_when: not home_dir.stat.exists
|
|
|
|
# Тест 3: Проверка SSH директории
|
|
- name: "Проверка SSH директории"
|
|
stat:
|
|
path: "{{ devops_ssh.ssh_dir }}"
|
|
register: ssh_dir
|
|
failed_when: not ssh_dir.stat.exists
|
|
|
|
# Тест 4: Проверка authorized_keys (если SSH ключ передан)
|
|
- name: "Проверка authorized_keys"
|
|
stat:
|
|
path: "{{ devops_ssh.authorized_keys_file }}"
|
|
register: auth_keys
|
|
failed_when: devops_ssh_public_key is defined and not auth_keys.stat.exists
|
|
when: devops_ssh_public_key is defined
|
|
|
|
# Тест 5: Проверка sudo прав
|
|
- name: "Проверка sudo прав"
|
|
command: "sudo -l -U {{ devops_user.name }}"
|
|
register: sudo_rights
|
|
become: true
|
|
failed_when: sudo_rights.rc != 0
|
|
changed_when: false
|
|
|
|
# Тест 6: Проверка групп пользователя
|
|
- name: "Проверка групп пользователя"
|
|
command: "groups {{ devops_user.name }}"
|
|
register: user_groups
|
|
failed_when: user_groups.rc != 0
|
|
changed_when: false
|
|
|
|
# Тест 7: Проверка прав на SSH директорию
|
|
- name: "Проверка прав на SSH директорию"
|
|
stat:
|
|
path: "{{ devops_ssh.ssh_dir }}"
|
|
register: ssh_dir_perms
|
|
failed_when: ssh_dir_perms.stat.mode != "0" + devops_ssh.ssh_dir_mode
|
|
|
|
# Тест 8: Проверка shell пользователя
|
|
- name: "Проверка shell пользователя"
|
|
command: "getent passwd {{ devops_user.name }}"
|
|
register: user_shell
|
|
failed_when: user_shell.rc != 0
|
|
changed_when: false
|
|
|
|
# Вывод результатов тестов
|
|
- name: "Результаты тестов"
|
|
debug:
|
|
msg: |
|
|
✅ Пользователь {{ devops_user.name }} создан
|
|
✅ Домашняя директория {{ devops_user.home }} создана
|
|
✅ SSH директория {{ devops_ssh.ssh_dir }} создана
|
|
{% if devops_ssh_public_key is defined %}
|
|
✅ authorized_keys настроен
|
|
{% endif %}
|
|
✅ Sudo права настроены
|
|
✅ Группы пользователя: {{ user_groups.stdout }}
|
|
✅ Shell пользователя: {{ user_shell.stdout.split(':')[-1] }}
|