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
- Добавлена автоматическая детекция ОС и настройка групп пользователя - Поддержка всех ОС из dockerfiles: Ubuntu, Debian, RHEL, CentOS, Rocky, AlmaLinux, Astra Linux, ALT Linux, RedOS - Автоматический выбор групп: sudo для Ubuntu/Debian, wheel для RHEL-семейства - Обновлена документация с примерами для разных ОС - Добавлены тесты для проверки универсальности - Исправлены ошибки линтера в meta/main.yml Роль теперь работает на всех системах из dockerfiles без дополнительной настройки.
91 lines
3.4 KiB
YAML
91 lines
3.4 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] }}
|
||
✅ ОС: {{ devops_os_name | default('неизвестная') }}
|
||
✅ Группы для ОС: {{ devops_user_groups | default('не определены') }}
|