feat: Реорганизация Makefile и добавление Docker образов
- Реорганизован 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'ах * Добавлены пустые цели для совместимости
This commit is contained in:
160
dockerfiles/README.md
Normal file
160
dockerfiles/README.md
Normal file
@@ -0,0 +1,160 @@
|
||||
# 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'ах для создания универсальной системы тестирования.
|
||||
Reference in New Issue
Block a user