Files
DevOpsLab/docs/all-images-preset.md
Сергей Антропов 692fe8c6c0
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 и обновлены все конфигурации
- Удалена папка dockerfiles/debian
- Обновлены все presets/*.yml файлы с новыми образами
- Обновлена документация в соответствии с новыми возможностями
- Добавлены новые версии Ubuntu (20.04, 22.04, 24.04)
- Добавлены новые версии CentOS (7, 8, 9)
- Добавлены новые версии Debian (9, 10, 11, 12)
- Обновлены family в hosts секциях
- Обновлена документация по поддержке платформ
2025-10-26 00:08:56 +03:00

170 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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