- Реорганизован Makefile: * Переменные вынесены наверх * Справка перенесена в конец * Удалены секции molecule и container * Объединены presets и preset в одну секцию * Переименована секция docker в docker-cmd - Добавлены Docker образы: * ansible-controller - основной контроллер * alt-linux, astra-linux, redos - российские дистрибутивы * rhel, centos, alma, rocky - RHEL-совместимые образы - Обновлены preset'ы: * Добавлены описания #description: во все preset'ы * Переименован docker.yml в docker-test.yml * Добавлены новые preset'ы: etcd-patroni, multi-os - Добавлена документация: * docs/examples.md - примеры использования * docs/universal-testing.md - универсальное тестирование * dockerfiles/README.md - описание Docker образов - Улучшена функциональность: * Единообразный стиль команд make [категория] [действие] * Улучшенный вывод информации о preset'ах * Добавлены пустые цели для совместимости
161 lines
4.7 KiB
Markdown
161 lines
4.7 KiB
Markdown
# Docker образы для универсальной системы тестирования
|
||
|
||
## Обзор
|
||
|
||
Эта директория содержит Docker образы для различных операционных систем и компонентов, используемых в универсальной системе тестирования Ansible ролей.
|
||
|
||
## Структура
|
||
|
||
```
|
||
dockerfiles/
|
||
├── ansible-controller/ # Ansible контроллер с предустановленными коллекциями
|
||
├── alt-linux/ # ALT Linux с systemd
|
||
├── astra-linux/ # Astra Linux с systemd
|
||
├── redos/ # RED OS с systemd
|
||
├── Makefile # Команды для сборки образов
|
||
└── README.md # Документация
|
||
```
|
||
|
||
## Доступные образы
|
||
|
||
### ansible-controller
|
||
- **Базовый образ:** `quay.io/ansible/creator-ee:latest`
|
||
- **Описание:** Ansible контроллер с предустановленными коллекциями
|
||
- **Компоненты:**
|
||
- Ansible с коллекциями (community.docker, community.general, ansible.posix)
|
||
- Docker CLI
|
||
- kubectl
|
||
- Helm
|
||
- Kind
|
||
- Istio CLI
|
||
- Дополнительные роли (geerlingguy.docker, geerlingguy.kubernetes)
|
||
|
||
### alt-linux
|
||
- **Базовый образ:** `altlinux/p9`
|
||
- **Описание:** ALT Linux с systemd
|
||
- **Компоненты:**
|
||
- systemd
|
||
- Docker
|
||
- Docker Compose
|
||
- Python3
|
||
- Пользователь ansible
|
||
|
||
### astra-linux
|
||
- **Базовый образ:** `astralinux/astra-1.7`
|
||
- **Описание:** Astra Linux с systemd
|
||
- **Компоненты:**
|
||
- systemd
|
||
- Docker
|
||
- Docker Compose
|
||
- Python3
|
||
- Пользователь ansible
|
||
|
||
### redos
|
||
- **Базовый образ:** `redos/redos:9`
|
||
- **Описание:** RED OS с systemd
|
||
- **Компоненты:**
|
||
- systemd
|
||
- Docker
|
||
- Docker Compose
|
||
- Python3
|
||
- Пользователь ansible
|
||
|
||
## Использование
|
||
|
||
### Сборка всех образов
|
||
```bash
|
||
make docker-build
|
||
```
|
||
|
||
### Сборка конкретного образа
|
||
```bash
|
||
make docker-build IMAGE=ansible-controller
|
||
```
|
||
|
||
### Отправка образов в registry
|
||
```bash
|
||
make docker-push
|
||
```
|
||
|
||
### Очистка образов
|
||
```bash
|
||
make docker-clean
|
||
```
|
||
|
||
### Информация об образах
|
||
```bash
|
||
make docker-info
|
||
```
|
||
|
||
## Настройка registry
|
||
|
||
По умолчанию образы собираются с тегом `localhost:5000/имя:latest`. Для изменения registry:
|
||
|
||
```bash
|
||
make docker-build REGISTRY=my-registry.com
|
||
make docker-push REGISTRY=my-registry.com
|
||
```
|
||
|
||
## Использование в preset'ах
|
||
|
||
После сборки образов их можно использовать в preset'ах:
|
||
|
||
```yaml
|
||
# molecule/presets/my-preset.yml
|
||
images:
|
||
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
|
||
rhel: "quay.io/centos/centos:stream9-systemd"
|
||
alt: "localhost:5000/alt-linux:latest"
|
||
astra: "localhost:5000/astra-linux:latest"
|
||
redos: "localhost:5000/redos:latest"
|
||
|
||
hosts:
|
||
- name: alt-server
|
||
family: alt
|
||
groups: [servers]
|
||
- name: astra-server
|
||
family: astra
|
||
groups: [servers]
|
||
- name: redos-server
|
||
family: redos
|
||
groups: [servers]
|
||
```
|
||
|
||
## Лучшие практики
|
||
|
||
### 1. Версионирование образов
|
||
```bash
|
||
make docker-build VERSION=v1.0.0
|
||
```
|
||
|
||
### 2. Использование registry
|
||
```bash
|
||
make docker-push REGISTRY=my-registry.com VERSION=v1.0.0
|
||
```
|
||
|
||
### 3. Очистка старых образов
|
||
```bash
|
||
make docker-clean
|
||
```
|
||
|
||
## Troubleshooting
|
||
|
||
### Проблемы с сборкой
|
||
1. Проверьте доступность базовых образов
|
||
2. Убедитесь, что Docker запущен
|
||
3. Проверьте права доступа к Docker
|
||
|
||
### Проблемы с registry
|
||
1. Убедитесь, что registry доступен
|
||
2. Проверьте аутентификацию
|
||
3. Проверьте права на push
|
||
|
||
### Проблемы с образами
|
||
1. Проверьте размер образов
|
||
2. Убедитесь, что все зависимости установлены
|
||
3. Проверьте совместимость с базовыми образами
|
||
|
||
## Заключение
|
||
|
||
Эти Docker образы предоставляют готовую среду для тестирования Ansible ролей на различных операционных системах. Используйте их в своих preset'ах для создания универсальной системы тестирования.
|