Files
DevOpsLab/dockerfiles
Сергей Антропов 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
..

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

Использование

Сборка всех образов

make docker-build

Сборка конкретного образа

make docker-build IMAGE=ansible-controller

Отправка образов в registry

make docker-push

Очистка образов

make docker-clean

Информация об образах

make docker-info

Настройка registry

По умолчанию образы собираются с тегом localhost:5000/имя:latest. Для изменения registry:

make docker-build REGISTRY=my-registry.com
make docker-push REGISTRY=my-registry.com

Использование в preset'ах

После сборки образов их можно использовать в preset'ах:

# 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. Версионирование образов

make docker-build VERSION=v1.0.0

2. Использование registry

make docker-push REGISTRY=my-registry.com VERSION=v1.0.0

3. Очистка старых образов

make docker-clean

Troubleshooting

Проблемы с сборкой

  1. Проверьте доступность базовых образов
  2. Убедитесь, что Docker запущен
  3. Проверьте права доступа к Docker

Проблемы с registry

  1. Убедитесь, что registry доступен
  2. Проверьте аутентификацию
  3. Проверьте права на push

Проблемы с образами

  1. Проверьте размер образов
  2. Убедитесь, что все зависимости установлены
  3. Проверьте совместимость с базовыми образами

Заключение

Эти Docker образы предоставляют готовую среду для тестирования Ansible ролей на различных операционных системах. Используйте их в своих preset'ах для создания универсальной системы тестирования.