- Удалена папка 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-окружений с разнородной инфраструктурой.