- Переименован пресет geop.yml в cod.yml - Обновлены все группы с geop на cod - Добавлена поддержка ARM64 для Astra Linux и RedOS - Создан Dockerfile.arm64 для RedOS с исправлением конфликтов пакетов - Улучшены разделители в логах Molecule - Зашифрован файл vault/secrets.yml - Обновлена роль devops с поддержкой vault - Добавлены шаблоны для SSH и sudoers конфигураций
		
			
				
	
	
		
			161 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | ||
| # Обработчики для роли devops
 | ||
| # Автор: Сергей Антропов
 | ||
| # Сайт: https://devops.org.ru
 | ||
| 
 | ||
| - name: "🔄 Перезапуск SSH сервиса"
 | ||
|   block:
 | ||
|     - name: "Перезапуск SSH сервиса (systemd)"
 | ||
|       listen: "restart ssh service"
 | ||
|       systemd:
 | ||
|         name: "{{ item }}"
 | ||
|         state: restarted
 | ||
|         enabled: yes
 | ||
|         daemon_reload: yes
 | ||
|       become: true
 | ||
|       loop: "{{ devops_services_to_enable }}"
 | ||
|       when: ansible_service_mgr == "systemd"
 | ||
| 
 | ||
|     - name: "Перезапуск SSH сервиса (service)"
 | ||
|       service:
 | ||
|         name: "{{ item }}"
 | ||
|         state: restarted
 | ||
|         enabled: yes
 | ||
|       become: true
 | ||
|       loop: "{{ devops_services_to_enable }}"
 | ||
|       when: ansible_service_mgr == "service"
 | ||
| 
 | ||
|     - name: "Перезапуск SSH сервиса (rc-service)"
 | ||
|       service:
 | ||
|         name: "{{ item }}"
 | ||
|         state: restarted
 | ||
|         enabled: yes
 | ||
|       become: true
 | ||
|       loop: "{{ devops_services_to_enable }}"
 | ||
|       when: ansible_service_mgr == "rc-service"
 | ||
| 
 | ||
| - name: "🔍 Проверка конфигурации SSH"
 | ||
|   block:
 | ||
|     - name: "Проверка конфигурации SSH сервера"
 | ||
|       listen: "check ssh config"
 | ||
|       command: "sshd -t"
 | ||
|       become: true
 | ||
|       register: sshd_config_check
 | ||
|       changed_when: false
 | ||
|       failed_when: sshd_config_check.rc != 0
 | ||
| 
 | ||
|     - name: "Логирование проверки SSH конфигурации"
 | ||
|       debug:
 | ||
|         msg: "SSH конфигурация проверена успешно"
 | ||
|       when: false
 | ||
| 
 | ||
| - name: "📝 Логирование изменений"
 | ||
|   block:
 | ||
|     - name: "Запись в лог файл"
 | ||
|       listen: "log changes"
 | ||
|       lineinfile:
 | ||
|         path: "{{ devops_log_file }}"
 | ||
|         line: "{{ ansible_date_time.iso8601 }} - {{ ansible_hostname }} - {{ ansible_user_id }} - {{ ansible_play_name }} - {{ ansible_task_name }}"
 | ||
|         create: yes
 | ||
|         owner: root
 | ||
|         group: root
 | ||
|         mode: '0644'
 | ||
|       become: true
 | ||
|       when: devops_log_file is defined
 | ||
| 
 | ||
|     - name: "Логирование в syslog"
 | ||
|       syslogger:
 | ||
|         facility: "local0"
 | ||
|         priority: "info"
 | ||
|         msg: "DevOps role: {{ ansible_task_name }} completed on {{ ansible_hostname }}"
 | ||
|       when: false
 | ||
| 
 | ||
| - name: "🔔 Уведомления о завершении"
 | ||
|   block:
 | ||
|     - name: "Уведомление об успешном завершении"
 | ||
|       listen: "notify completion"
 | ||
|       debug:
 | ||
|         msg: "✅ Роль devops успешно выполнена на {{ ansible_hostname }}"
 | ||
|       when: devops_notify_on_success
 | ||
| 
 | ||
|     - name: "Уведомление об ошибке"
 | ||
|       debug:
 | ||
|         msg: "❌ Ошибка при выполнении роли devops на {{ ansible_hostname }}"
 | ||
|       when: devops_notify_on_failure
 | ||
| 
 | ||
| - name: "🧹 Очистка временных файлов"
 | ||
|   block:
 | ||
|     - name: "Удаление временных файлов"
 | ||
|       listen: "cleanup temp files"
 | ||
|       file:
 | ||
|         path: "{{ item }}"
 | ||
|         state: absent
 | ||
|       become: true
 | ||
|       loop:
 | ||
|         - "/tmp/devops_setup_*"
 | ||
|         - "/tmp/ansible_*"
 | ||
|       ignore_errors: true
 | ||
| 
 | ||
|     - name: "Логирование очистки"
 | ||
|       debug:
 | ||
|         msg: "Временные файлы очищены"
 | ||
|       when: false
 | ||
| 
 | ||
| - name: "🔐 Проверка безопасности"
 | ||
|   block:
 | ||
|     - name: "Проверка прав доступа к файлам пользователя"
 | ||
|       listen: "security check"
 | ||
|       stat:
 | ||
|         path: "{{ devops_home }}"
 | ||
|       register: home_dir_check
 | ||
| 
 | ||
|     - name: "Проверка прав доступа к SSH директории"
 | ||
|       stat:
 | ||
|         path: "{{ devops_ssh_dir }}"
 | ||
|       register: ssh_dir_check
 | ||
| 
 | ||
|     - name: "Проверка прав доступа к authorized_keys"
 | ||
|       stat:
 | ||
|         path: "{{ devops_ssh_authorized_keys }}"
 | ||
|       register: ssh_keys_check
 | ||
| 
 | ||
|     - name: "Проверка прав доступа к sudoers файлу"
 | ||
|       stat:
 | ||
|         path: "{{ devops_sudoers_file }}"
 | ||
|       register: sudoers_file_check
 | ||
| 
 | ||
|     - name: "Логирование проверки безопасности"
 | ||
|       debug:
 | ||
|         msg: |
 | ||
|           Результаты проверки безопасности:
 | ||
|           - Домашняя директория: {{ home_dir_check.stat.exists }}
 | ||
|           - SSH директория: {{ ssh_dir_check.stat.exists }}
 | ||
|           - SSH ключи: {{ ssh_keys_check.stat.exists }}
 | ||
|           - Sudoers файл: {{ sudoers_file_check.stat.exists }}
 | ||
| 
 | ||
| - name: "📊 Сбор статистики"
 | ||
|   block:
 | ||
|     - name: "Сбор информации о пользователе"
 | ||
|       listen: "collect statistics"
 | ||
|       command: "id {{ devops_user }}"
 | ||
|       register: user_info
 | ||
|       changed_when: false
 | ||
| 
 | ||
|     - name: "Сбор информации о группах пользователя"
 | ||
|       command: "groups {{ devops_user }}"
 | ||
|       register: user_groups
 | ||
|       changed_when: false
 | ||
| 
 | ||
|     - name: "Сбор информации о SSH ключах"
 | ||
|       command: "wc -l {{ devops_ssh_authorized_keys }}"
 | ||
|       register: ssh_keys_count
 | ||
|       changed_when: false
 | ||
|       ignore_errors: true
 | ||
| 
 | ||
|     - name: "Логирование статистики"
 | ||
|       debug:
 | ||
|         msg: |
 | ||
|           Статистика пользователя {{ devops_user }}:
 | ||
|           - Информация: {{ user_info.stdout }}
 | ||
|           - Группы: {{ user_groups.stdout }}
 | ||
|           - SSH ключей: {{ ssh_keys_count.stdout | default('неизвестно') }} |