- Удалена папка dockerfiles/debian - Обновлены все presets/*.yml файлы с новыми образами - Обновлена документация в соответствии с новыми возможностями - Добавлены новые версии Ubuntu (20.04, 22.04, 24.04) - Добавлены новые версии CentOS (7, 8, 9) - Добавлены новые версии Debian (9, 10, 11, 12) - Обновлены family в hosts секциях - Обновлена документация по поддержке платформ
		
			
				
	
	
	
		
			6.1 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	Пресет 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
Использование
Запуск тестирования всех образов
# Тестирование всех образов
make role test all-images
Предварительные требования
- 
Собранные образы - все образы должны быть собраны: make docker build
- 
Достаточно ресурсов - тест запускает 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 свободного места
Отладка
Проверка статуса контейнеров
# Список запущенных контейнеров
docker ps --filter "network=labnet"
# Логи конкретного контейнера
docker logs ubuntu-test
docker logs astra-test
Проблемы и решения
Контейнеры не запускаются
- 
Проверьте, что образы собраны: docker images | grep inecs/ansible-lab
- 
Пересоберите образы: make docker rebuild
Astra Linux перезапускается
- Проблема решена в Dockerfile (отключение Parsec)
- Если проблема остается, проверьте логи:
docker logs astra-test
Нехватка ресурсов
- Уменьшите количество контейнеров в пресете
- Используйте пресет minimalдля быстрого тестирования
Альтернативные пресеты
Если all-images слишком ресурсоемкий, используйте:
- minimal- 1 контейнер (Debian)
- default- 2 контейнера (Debian + RHEL)
- multi-os- 12 контейнеров (разные ОС)
Мониторинг
Логи тестирования
# Просмотр логов 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
- name: Test all images
  run: make role test all-images
  timeout-minutes: 30
Заключение
Пресет all-images обеспечивает максимальное покрытие тестирования, гарантируя совместимость Ansible ролей со всеми поддерживаемыми операционными системами. Это критически важно для production-окружений с разнородной инфраструктурой.