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:
Сергей Антропов
2025-10-25 11:29:37 +03:00
parent 60ee5e90a5
commit 696e08aa35
27 changed files with 2101 additions and 250 deletions

160
dockerfiles/README.md Normal file
View 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'ах для создания универсальной системы тестирования.