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('не определены') }}
 |