Files
DevOpsLab/dockerfiles/README.md
Сергей Антропов 696e08aa35 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'ах
  * Добавлены пустые цели для совместимости
2025-10-25 11:29:37 +03:00

161 lines
4.7 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.

# 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'ах для создания универсальной системы тестирования.