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/debian - Обновлены все presets/*.yml файлы с новыми образами - Обновлена документация в соответствии с новыми возможностями - Добавлены новые версии Ubuntu (20.04, 22.04, 24.04) - Добавлены новые версии CentOS (7, 8, 9) - Добавлены новые версии Debian (9, 10, 11, 12) - Обновлены family в hosts секциях - Обновлена документация по поддержке платформ
		
			
				
	
	
		
			170 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Пресет all-images - Тестирование всех образов
 | ||
| 
 | ||
| ## Описание
 | ||
| 
 | ||
| Пресет `all-images` предназначен для комплексного тестирования Ansible ролей на всех доступных операционных системах проекта. Это самый полный пресет, который включает все 16 образов:
 | ||
| 
 | ||
| ### Включенные образы
 | ||
| 
 | ||
| #### Debian-based системы:
 | ||
| - **Ubuntu 20.04** (ubuntu20-test) - порт 8080
 | ||
| - **Ubuntu 22.04** (ubuntu22-test) - порт 8081
 | ||
| - **Ubuntu 24.04** (ubuntu24-test) - порт 8082
 | ||
| - **Debian 9** (debian9-test) - порт 8083
 | ||
| - **Debian 10** (debian10-test) - порт 8084
 | ||
| - **Debian 11** (debian11-test) - порт 8085
 | ||
| - **Debian 12** (debian12-test) - порт 8086
 | ||
| - **Alt Linux** (alt-test) - порт 8087
 | ||
| - **Astra Linux** (astra-test) - порт 8088
 | ||
| 
 | ||
| #### RHEL-based системы:
 | ||
| - **CentOS 7** (centos7-test) - порт 8090
 | ||
| - **CentOS 8** (centos8-test) - порт 8091
 | ||
| - **CentOS 9** (centos9-test) - порт 8092
 | ||
| - **RHEL** (rhel-test) - порт 8085
 | ||
| - **AlmaLinux** (alma-test) - порт 8086
 | ||
| - **Rocky Linux** (rocky-test) - порт 8087
 | ||
| - **RedOS** (redos-test) - порт 8088
 | ||
| 
 | ||
| ## Использование
 | ||
| 
 | ||
| ### Запуск тестирования всех образов
 | ||
| 
 | ||
| ```bash
 | ||
| # Тестирование всех образов
 | ||
| make role test all-images
 | ||
| ```
 | ||
| 
 | ||
| ### Предварительные требования
 | ||
| 
 | ||
| 1. **Собранные образы** - все образы должны быть собраны:
 | ||
|    ```bash
 | ||
|    make docker build
 | ||
|    ```
 | ||
| 
 | ||
| 2. **Достаточно ресурсов** - тест запускает 16 контейнеров одновременно, требуется:
 | ||
|    - Минимум 16GB RAM
 | ||
|    - Минимум 8 CPU cores
 | ||
|    - Достаточно места на диске
 | ||
| 
 | ||
| ### Особенности
 | ||
| 
 | ||
| #### Порты
 | ||
| Каждый контейнер использует уникальный порт для доступа:
 | ||
| - Ubuntu 20.04: `localhost:8080`
 | ||
| - Ubuntu 22.04: `localhost:8081`
 | ||
| - Ubuntu 24.04: `localhost:8082`
 | ||
| - Debian 9: `localhost:8083`
 | ||
| - Debian 10: `localhost:8084`
 | ||
| - Debian 11: `localhost:8085`
 | ||
| - Debian 12: `localhost:8086`
 | ||
| - Alt Linux: `localhost:8087`
 | ||
| - Astra Linux: `localhost:8088`
 | ||
| - CentOS 7: `localhost:8090`
 | ||
| - CentOS 8: `localhost:8091`
 | ||
| - CentOS 9: `localhost:8092`
 | ||
| - RHEL: `localhost:8085`
 | ||
| - AlmaLinux: `localhost:8086`
 | ||
| - Rocky Linux: `localhost:8087`
 | ||
| - RedOS: `localhost:8088`
 | ||
| 
 | ||
| #### Переменные окружения
 | ||
| Каждый контейнер получает переменные:
 | ||
| - `TEST_OS` - название ОС
 | ||
| - `TEST_FAMILY` - семейство ОС (Debian/RedHat/Altlinux/Astra Linux)
 | ||
| 
 | ||
| #### Специальные настройки
 | ||
| - **Astra Linux**: автоматическое отключение Parsec
 | ||
| - **Все образы**: предустановленный sudo с настройкой sudoers
 | ||
| - **Systemd**: полная поддержка systemd в контейнерах
 | ||
| 
 | ||
| ## Производительность
 | ||
| 
 | ||
| ### Время выполнения
 | ||
| - **Создание контейнеров**: ~2-3 минуты
 | ||
| - **Тестирование ролей**: зависит от сложности ролей
 | ||
| - **Очистка**: ~30 секунд
 | ||
| 
 | ||
| ### Ресурсы
 | ||
| - **RAM**: 16-32GB (рекомендуется)
 | ||
| - **CPU**: 8-16 cores
 | ||
| - **Диск**: 20-40GB свободного места
 | ||
| 
 | ||
| ## Отладка
 | ||
| 
 | ||
| ### Проверка статуса контейнеров
 | ||
| ```bash
 | ||
| # Список запущенных контейнеров
 | ||
| docker ps --filter "network=labnet"
 | ||
| 
 | ||
| # Логи конкретного контейнера
 | ||
| docker logs ubuntu-test
 | ||
| docker logs astra-test
 | ||
| ```
 | ||
| 
 | ||
| ### Проблемы и решения
 | ||
| 
 | ||
| #### Контейнеры не запускаются
 | ||
| 1. Проверьте, что образы собраны:
 | ||
|    ```bash
 | ||
|    docker images | grep inecs/ansible-lab
 | ||
|    ```
 | ||
| 
 | ||
| 2. Пересоберите образы:
 | ||
|    ```bash
 | ||
|    make docker rebuild
 | ||
|    ```
 | ||
| 
 | ||
| #### Astra Linux перезапускается
 | ||
| - Проблема решена в Dockerfile (отключение Parsec)
 | ||
| - Если проблема остается, проверьте логи:
 | ||
|   ```bash
 | ||
|   docker logs astra-test
 | ||
|   ```
 | ||
| 
 | ||
| #### Нехватка ресурсов
 | ||
| - Уменьшите количество контейнеров в пресете
 | ||
| - Используйте пресет `minimal` для быстрого тестирования
 | ||
| 
 | ||
| ## Альтернативные пресеты
 | ||
| 
 | ||
| Если `all-images` слишком ресурсоемкий, используйте:
 | ||
| 
 | ||
| - `minimal` - 1 контейнер (Debian)
 | ||
| - `default` - 2 контейнера (Debian + RHEL)
 | ||
| - `multi-os` - 12 контейнеров (разные ОС)
 | ||
| 
 | ||
| ## Мониторинг
 | ||
| 
 | ||
| ### Логи тестирования
 | ||
| ```bash
 | ||
| # Просмотр логов ansible-controller
 | ||
| docker logs ansible-controller
 | ||
| 
 | ||
| # Логи конкретного playbook
 | ||
| tail -f /tmp/molecule_workspace/logs/ansible.log
 | ||
| ```
 | ||
| 
 | ||
| ### Метрики производительности
 | ||
| - Время выполнения каждого этапа
 | ||
| - Использование ресурсов
 | ||
| - Количество успешных/неудачных тестов
 | ||
| 
 | ||
| ## Интеграция с CI/CD
 | ||
| 
 | ||
| Пресет `all-images` идеально подходит для:
 | ||
| - **GitHub Actions** - полное тестирование на всех ОС
 | ||
| - **GitLab CI** - комплексная проверка совместимости
 | ||
| - **Jenkins** - автоматическое тестирование релизов
 | ||
| 
 | ||
| ### Пример для GitHub Actions
 | ||
| ```yaml
 | ||
| - name: Test all images
 | ||
|   run: make role test all-images
 | ||
|   timeout-minutes: 30
 | ||
| ```
 | ||
| 
 | ||
| ## Заключение
 | ||
| 
 | ||
| Пресет `all-images` обеспечивает максимальное покрытие тестирования, гарантируя совместимость Ansible ролей со всеми поддерживаемыми операционными системами. Это критически важно для production-окружений с разнородной инфраструктурой.
 |