docs: добавлена полная документация по Molecule и Docker образам
Some checks failed
Ansible Testing / lint (push) Has been cancelled
Ansible Testing / test (default) (push) Has been cancelled
Ansible Testing / test (minimal) (push) Has been cancelled
Ansible Testing / test (performance) (push) Has been cancelled
Ansible Testing / deploy-check (push) Has been cancelled
Some checks failed
Ansible Testing / lint (push) Has been cancelled
Ansible Testing / test (default) (push) Has been cancelled
Ansible Testing / test (minimal) (push) Has been cancelled
Ansible Testing / test (performance) (push) Has been cancelled
Ansible Testing / deploy-check (push) Has been cancelled
- Создан docs/dockerfiles.md с полной документацией по всем Docker образам - Обновлен раздел Preset система в README с полным списком preset'ов - Добавлены категории preset'ов: базовые, по ОС, специализированные - Описаны все 25+ preset'ов из molecule/presets/ - Добавлена ссылка на docs/dockerfiles.md в основной README - Документация по Docker образам перенесена из dockerfiles/README.md в docs/ Автор: Сергей Антропов Сайт: https://devops.org.ru
This commit is contained in:
28
README.md
28
README.md
@@ -129,11 +129,27 @@ Preset система позволяет быстро выбрать окруж
|
|||||||
|
|
||||||
### Доступные preset'ы
|
### Доступные preset'ы
|
||||||
|
|
||||||
| Preset | Описание | Хосты |
|
#### Базовые
|
||||||
|--------|----------|-------|
|
- **`default`** - Стандартный preset (2 хоста: Ubuntu + Debian)
|
||||||
| `default` | Стандартный preset | 2 хоста (Ubuntu + CentOS) |
|
- **`minimal`** - Минимальный preset (1 хост: Debian)
|
||||||
| `minimal` | Минимальный preset | 1 хост (Debian) |
|
- **`test`** - Базовый тест (2 хоста)
|
||||||
| `mytest` | Кастомный preset | 3 хоста |
|
- **`stable`** - Стабильные ОС (4 хоста)
|
||||||
|
- **`standart`** - Стандартный набор (4 хоста)
|
||||||
|
- **`mytest`** - Кастомный preset (3 хоста)
|
||||||
|
|
||||||
|
#### По ОС
|
||||||
|
- **Ubuntu**: `ubuntu20`, `ubuntu22`, `ubuntu24`, `ubuntu-all` (все версии)
|
||||||
|
- **Debian**: `debian9`, `debian10`, `debian11`, `debian12`, `debian-all` (все версии)
|
||||||
|
- **CentOS**: `centos7`, `centos8`, `centos9`, `centos-all` (все версии)
|
||||||
|
|
||||||
|
#### Специализированные
|
||||||
|
- **`all-images`** - Все образы (16 хостов) - полное покрытие всех ОС
|
||||||
|
- **`multi-os`** - Multi-OS тестирование (8 хостов разных ОС)
|
||||||
|
- **`docker-full`** - Docker тестирование (4 хоста)
|
||||||
|
- **`docker-test`** - Базовое Docker тестирование (2 хоста)
|
||||||
|
- **`etcd-patroni`** - ETCD + Patroni кластер (4 хоста)
|
||||||
|
- **`performance`** - Тест производительности (8 хостов)
|
||||||
|
- **`security`** - Тест безопасности (6 хостов)
|
||||||
|
|
||||||
### Создание своего preset
|
### Создание своего preset
|
||||||
|
|
||||||
@@ -447,7 +463,7 @@ make custom-images # справка по собственным
|
|||||||
|
|
||||||
### Docker образы
|
### Docker образы
|
||||||
|
|
||||||
- **[dockerfiles/README.md](dockerfiles/README.md)** - Информация об образах
|
- **[docs/dockerfiles.md](docs/dockerfiles.md)** - Полная документация по Docker образам
|
||||||
|
|
||||||
## 🐳 Docker образы
|
## 🐳 Docker образы
|
||||||
|
|
||||||
|
|||||||
410
docs/dockerfiles.md
Normal file
410
docs/dockerfiles.md
Normal file
@@ -0,0 +1,410 @@
|
|||||||
|
# Docker образы AnsibleLab
|
||||||
|
|
||||||
|
**Автор:** Сергей Антропов
|
||||||
|
**Сайт:** https://devops.org.ru
|
||||||
|
**Версия:** 2.0.0
|
||||||
|
|
||||||
|
## 🐳 Обзор
|
||||||
|
|
||||||
|
AnsibleLab использует предварительно собранные Docker образы для различных операционных систем с полной поддержкой systemd. Все образы поддерживают multi-arch сборку и автоматически публикуются в Docker Hub под namespace `inecs/ansible-lab`.
|
||||||
|
|
||||||
|
## 📁 Структура dockerfiles/
|
||||||
|
|
||||||
|
```
|
||||||
|
dockerfiles/
|
||||||
|
├── ansible-controller/ # Ansible контроллер
|
||||||
|
├── alt-linux/ # ALT Linux P9
|
||||||
|
├── astra-linux/ # Astra Linux 1.7
|
||||||
|
├── redos/ # RED OS 9
|
||||||
|
├── rhel/ # Red Hat Enterprise Linux 8
|
||||||
|
├── centos7/ # CentOS 7
|
||||||
|
├── centos8/ # CentOS 8
|
||||||
|
├── centos9/ # CentOS Stream 9
|
||||||
|
├── alma/ # AlmaLinux 8
|
||||||
|
├── rocky/ # Rocky Linux 8
|
||||||
|
├── ubuntu20/ # Ubuntu 20.04 LTS
|
||||||
|
├── ubuntu22/ # Ubuntu 22.04 LTS
|
||||||
|
├── ubuntu24/ # Ubuntu 24.04 LTS
|
||||||
|
├── debian9/ # Debian 9 Stretch
|
||||||
|
├── debian10/ # Debian 10 Buster
|
||||||
|
├── debian11/ # Debian 11 Bullseye
|
||||||
|
└── debian12/ # Debian 12 Bookworm
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🚀 Доступные образы
|
||||||
|
|
||||||
|
### ansible-controller
|
||||||
|
|
||||||
|
**Базовый образ:** `ubuntu:22.04`
|
||||||
|
**Теги:** `inecs/ansible-lab:ansible-controller-latest`
|
||||||
|
**Платформы:** linux/amd64, linux/arm64
|
||||||
|
|
||||||
|
Ansible контроллер с предустановленными коллекциями и инструментами для разработки и тестирования.
|
||||||
|
|
||||||
|
#### Компоненты:
|
||||||
|
- Ansible Core с последними коллекциями
|
||||||
|
- Docker CLI для работы с контейнерами
|
||||||
|
- kubectl для управления Kubernetes
|
||||||
|
- Helm для управления пакетами Kubernetes
|
||||||
|
- Kind для локального Kubernetes
|
||||||
|
- yq для работы с YAML
|
||||||
|
- jq для работы с JSON
|
||||||
|
- Molecule для тестирования ролей
|
||||||
|
|
||||||
|
#### Предустановленные коллекции:
|
||||||
|
```yaml
|
||||||
|
collections:
|
||||||
|
- name: community.docker
|
||||||
|
version: ">=3.0.0"
|
||||||
|
- name: community.general
|
||||||
|
version: ">=7.0.0"
|
||||||
|
- name: ansible.posix
|
||||||
|
version: ">=1.5.4"
|
||||||
|
- name: kubernetes.core
|
||||||
|
version: ">=2.0.0"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Использование:
|
||||||
|
```bash
|
||||||
|
# Запуск контроллера
|
||||||
|
docker run -it --rm \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
-v $(pwd):/workspace \
|
||||||
|
-w /workspace \
|
||||||
|
inecs/ansible-lab:ansible-controller-latest
|
||||||
|
|
||||||
|
# Выполнение команды
|
||||||
|
docker run --rm \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
-v $(pwd):/workspace \
|
||||||
|
-w /workspace \
|
||||||
|
inecs/ansible-lab:ansible-controller-latest \
|
||||||
|
ansible-playbook site.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ubuntu
|
||||||
|
|
||||||
|
**Базовые образы:**
|
||||||
|
- `ubuntu:20.04` → `inecs/ansible-lab:ubuntu20-latest`
|
||||||
|
- `ubuntu:22.04` → `inecs/ansible-lab:ubuntu22-latest`
|
||||||
|
- `ubuntu:24.04` → `inecs/ansible-lab:ubuntu24-latest`
|
||||||
|
|
||||||
|
**Платформы:** linux/amd64, linux/arm64
|
||||||
|
|
||||||
|
Ubuntu LTS с systemd и Docker.
|
||||||
|
|
||||||
|
#### Компоненты:
|
||||||
|
- systemd для управления сервисами
|
||||||
|
- Docker CE с Docker Compose Plugin
|
||||||
|
- Python 3 с pip
|
||||||
|
- Пользователь ansible с sudo правами
|
||||||
|
- Основные утилиты (curl, wget, git, vim, nano, htop, tree, jq)
|
||||||
|
|
||||||
|
#### Использование:
|
||||||
|
```bash
|
||||||
|
docker run -d --privileged \
|
||||||
|
--name ubuntu-test \
|
||||||
|
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
|
||||||
|
--tmpfs /run --tmpfs /run/lock \
|
||||||
|
--cap-add SYS_ADMIN \
|
||||||
|
inecs/ansible-lab:ubuntu22-latest
|
||||||
|
```
|
||||||
|
|
||||||
|
### Debian
|
||||||
|
|
||||||
|
**Базовые образы:**
|
||||||
|
- `debian:9` → `inecs/ansible-lab:debian9-latest`
|
||||||
|
- `debian:10` → `inecs/ansible-lab:debian10-latest`
|
||||||
|
- `debian:11` → `inecs/ansible-lab:debian11-latest`
|
||||||
|
- `debian:bookworm` → `inecs/ansible-lab:debian12-latest`
|
||||||
|
|
||||||
|
**Платформы:** linux/amd64, linux/arm64
|
||||||
|
|
||||||
|
Debian с systemd и Docker.
|
||||||
|
|
||||||
|
#### Компоненты:
|
||||||
|
- systemd для управления сервисами
|
||||||
|
- Docker CE с Docker Compose Plugin
|
||||||
|
- Python 3 с pip
|
||||||
|
- Пользователь ansible с sudo правами
|
||||||
|
- Основные утилиты
|
||||||
|
|
||||||
|
#### Использование:
|
||||||
|
```bash
|
||||||
|
docker run -d --privileged \
|
||||||
|
--name debian-test \
|
||||||
|
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
|
||||||
|
--tmpfs /run --tmpfs /run/lock \
|
||||||
|
--cap-add SYS_ADMIN \
|
||||||
|
inecs/ansible-lab:debian12-latest
|
||||||
|
```
|
||||||
|
|
||||||
|
### CentOS
|
||||||
|
|
||||||
|
**Базовые образы:**
|
||||||
|
- `centos:7` → `inecs/ansible-lab:centos7-latest`
|
||||||
|
- `quay.io/centos/centos:8` → `inecs/ansible-lab:centos8-latest`
|
||||||
|
- `quay.io/centos/centos:stream9` → `inecs/ansible-lab:centos9-latest`
|
||||||
|
|
||||||
|
**Платформы:** linux/amd64, linux/arm64
|
||||||
|
|
||||||
|
CentOS с systemd и Docker.
|
||||||
|
|
||||||
|
#### Компоненты:
|
||||||
|
- systemd для управления сервисами
|
||||||
|
- Docker CE с Docker Compose Plugin
|
||||||
|
- Python 3 с pip
|
||||||
|
- Пользователь ansible с sudo правами
|
||||||
|
- Основные утилиты
|
||||||
|
|
||||||
|
#### Использование:
|
||||||
|
```bash
|
||||||
|
docker run -d --privileged \
|
||||||
|
--name centos-test \
|
||||||
|
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
|
||||||
|
--tmpfs /run --tmpfs /run/lock \
|
||||||
|
--cap-add SYS_ADMIN \
|
||||||
|
inecs/ansible-lab:centos9-latest
|
||||||
|
```
|
||||||
|
|
||||||
|
### AlmaLinux
|
||||||
|
|
||||||
|
**Базовый образ:** `almalinux:8`
|
||||||
|
**Тег:** `inecs/ansible-lab:alma-latest`
|
||||||
|
**Платформы:** linux/amd64, linux/arm64
|
||||||
|
|
||||||
|
AlmaLinux 8 с systemd и Docker.
|
||||||
|
|
||||||
|
### Rocky Linux
|
||||||
|
|
||||||
|
**Базовый образ:** `rockylinux:8`
|
||||||
|
**Тег:** `inecs/ansible-lab:rocky-latest`
|
||||||
|
**Платформы:** linux/amd64, linux/arm64
|
||||||
|
|
||||||
|
Rocky Linux 8 с systemd и Docker.
|
||||||
|
|
||||||
|
### Red Hat Enterprise Linux
|
||||||
|
|
||||||
|
**Базовый образ:** `registry.access.redhat.com/ubi8/ubi`
|
||||||
|
**Тег:** `inecs/ansible-lab:rhel-latest`
|
||||||
|
**Платформы:** linux/amd64, linux/arm64
|
||||||
|
|
||||||
|
Red Hat Enterprise Linux 8 с systemd и Docker.
|
||||||
|
|
||||||
|
### ALT Linux
|
||||||
|
|
||||||
|
**Базовый образ:** `altlinux/p9`
|
||||||
|
**Тег:** `inecs/ansible-lab:alt-linux-latest`
|
||||||
|
**Платформы:** linux/amd64 (ограничение базового образа)
|
||||||
|
|
||||||
|
ALT Linux P9 с systemd и Docker.
|
||||||
|
|
||||||
|
### Astra Linux
|
||||||
|
|
||||||
|
**Базовый образ:** `registry.astralinux.ru/library/astra/ubi17:1.7.6.uu2`
|
||||||
|
**Тег:** `inecs/ansible-lab:astra-linux-latest`
|
||||||
|
**Платформы:** linux/amd64 (ограничение базового образа)
|
||||||
|
|
||||||
|
Astra Linux 1.7 с systemd и Docker.
|
||||||
|
|
||||||
|
### RED OS
|
||||||
|
|
||||||
|
**Базовый образ:** `registry.red-soft.ru/ubi7/ubi`
|
||||||
|
**Тег:** `inecs/ansible-lab:redos-latest`
|
||||||
|
**Платформы:** linux/amd64 (ограничение базового образа)
|
||||||
|
|
||||||
|
RED OS 9 с systemd и Docker.
|
||||||
|
|
||||||
|
## 🔨 Сборка образов
|
||||||
|
|
||||||
|
### Сборка всех образов
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Собрать все образы (multi-arch)
|
||||||
|
make docker build
|
||||||
|
|
||||||
|
# Пересборка с очисткой кеша
|
||||||
|
make docker rebuild
|
||||||
|
|
||||||
|
# Сборка конкретного образа
|
||||||
|
make docker build-image IMAGE=centos7
|
||||||
|
```
|
||||||
|
|
||||||
|
### Поддерживаемые платформы
|
||||||
|
|
||||||
|
По умолчанию все образы собираются для следующих платформ:
|
||||||
|
- `linux/amd64` - 64-bit x86
|
||||||
|
- `linux/arm64` - 64-bit ARM
|
||||||
|
|
||||||
|
Дополнительные платформы (опционально):
|
||||||
|
- `linux/riscv64` - RISC-V 64-bit
|
||||||
|
- `linux/ppc64le` - PowerPC 64-bit LE
|
||||||
|
- `linux/s390x` - IBM Z
|
||||||
|
- `linux/386` - 32-bit x86
|
||||||
|
- `linux/arm/v7` - ARM v7
|
||||||
|
- `linux/arm/v6` - ARM v6
|
||||||
|
|
||||||
|
### Тегирование
|
||||||
|
|
||||||
|
Все образы автоматически получают теги:
|
||||||
|
- `inecs/ansible-lab:<имя>-<версия>` - версионированный тег
|
||||||
|
- `inecs/ansible-lab:<имя>-latest` - последняя версия
|
||||||
|
|
||||||
|
Например:
|
||||||
|
- `inecs/ansible-lab:centos9-9.0`
|
||||||
|
- `inecs/ansible-lab:centos9-latest`
|
||||||
|
- `inecs/ansible-lab:ubuntu22-22.04`
|
||||||
|
- `inecs/ansible-lab:ubuntu22-latest`
|
||||||
|
|
||||||
|
## 📤 Публикация в Docker Hub
|
||||||
|
|
||||||
|
### Требования
|
||||||
|
|
||||||
|
1. Авторизация в Docker Hub:
|
||||||
|
```bash
|
||||||
|
docker login
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Настройка билд-ксер (buildx) для multi-arch:
|
||||||
|
```bash
|
||||||
|
make docker setup-builder
|
||||||
|
```
|
||||||
|
|
||||||
|
### Публикация
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Публикация всех образов
|
||||||
|
make docker push
|
||||||
|
|
||||||
|
# Публикация конкретного образа
|
||||||
|
make docker build-image IMAGE=centos7
|
||||||
|
# (публикуется автоматически при сборке)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🧪 Использование в Molecule
|
||||||
|
|
||||||
|
### Preset конфигурация
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# molecule/presets/my-preset.yml
|
||||||
|
images:
|
||||||
|
ubuntu22: "inecs/ansible-lab:ubuntu22-latest"
|
||||||
|
centos9: "inecs/ansible-lab:centos9-latest"
|
||||||
|
debian12: "inecs/ansible-lab:debian12-latest"
|
||||||
|
|
||||||
|
hosts:
|
||||||
|
- name: web1
|
||||||
|
family: ubuntu22
|
||||||
|
groups: [web, test]
|
||||||
|
- name: db1
|
||||||
|
family: centos9
|
||||||
|
groups: [database, test]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Тестирование с preset
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Использование preset в тестах
|
||||||
|
MOLECULE_PRESET=my-preset make role test
|
||||||
|
|
||||||
|
# Или напрямую
|
||||||
|
make role test my-preset
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔧 Особенности образов
|
||||||
|
|
||||||
|
### Поддержка systemd
|
||||||
|
|
||||||
|
Все образы настроены для работы с systemd в контейнере:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d --privileged \
|
||||||
|
--tmpfs /run --tmpfs /run/lock \
|
||||||
|
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
|
||||||
|
--cap-add SYS_ADMIN \
|
||||||
|
inecs/ansible-lab:ubuntu22-latest
|
||||||
|
```
|
||||||
|
|
||||||
|
### Настройки по умолчанию
|
||||||
|
|
||||||
|
- **Пользователь ansible**: пароль `ansible`, sudo без пароля
|
||||||
|
- **SSH доступ**: включен для пользователя ansible
|
||||||
|
- **systemd**: multi-user.target по умолчанию
|
||||||
|
- **Временные файловые системы**: `/run`, `/run/lock`
|
||||||
|
- **Volumes**: `/sys/fs/cgroup`
|
||||||
|
|
||||||
|
### Docker внутри Docker
|
||||||
|
|
||||||
|
Все образы поддерживают запуск Docker внутри контейнера:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d --privileged \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
|
||||||
|
--tmpfs /run --tmpfs /run/lock \
|
||||||
|
--cap-add SYS_ADMIN \
|
||||||
|
inecs/ansible-lab:centos9-latest
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📋 Матрица совместимости
|
||||||
|
|
||||||
|
| Образ | Платформы | systemd | Docker | Python 3 |
|
||||||
|
|-------|-----------|---------|--------|----------|
|
||||||
|
| ansible-controller | amd64, arm64 | ✅ | ✅ | ✅ |
|
||||||
|
| ubuntu20/22/24 | amd64, arm64 | ✅ | ✅ | ✅ |
|
||||||
|
| debian9/10/11/12 | amd64, arm64 | ✅ | ✅ | ✅ |
|
||||||
|
| centos7/8/9 | amd64, arm64 | ✅ | ✅ | ✅ |
|
||||||
|
| alma | amd64, arm64 | ✅ | ✅ | ✅ |
|
||||||
|
| rocky | amd64, arm64 | ✅ | ✅ | ✅ |
|
||||||
|
| rhel | amd64, arm64 | ✅ | ✅ | ✅ |
|
||||||
|
| alt-linux | amd64 | ✅ | ✅ | ✅ |
|
||||||
|
| astra-linux | amd64 | ✅ | ✅ | ✅ |
|
||||||
|
| redos | amd64 | ✅ | ✅ | ✅ |
|
||||||
|
|
||||||
|
## 🛠️ Управление образами
|
||||||
|
|
||||||
|
### Проверка наличия образов
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Проверка локальных образов
|
||||||
|
docker images | grep inecs/ansible-lab
|
||||||
|
|
||||||
|
# Проверка в Molecule
|
||||||
|
make custom-images check
|
||||||
|
```
|
||||||
|
|
||||||
|
### Обновление образов
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Загрузить свежие образы
|
||||||
|
make docker pull
|
||||||
|
|
||||||
|
# Пересобрать с обновлениями
|
||||||
|
make docker rebuild
|
||||||
|
|
||||||
|
# Полное обновление
|
||||||
|
make docker update
|
||||||
|
```
|
||||||
|
|
||||||
|
### Очистка
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Удалить локальные образы
|
||||||
|
make docker clean
|
||||||
|
|
||||||
|
# Полная очистка
|
||||||
|
make docker purge
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 Дополнительная информация
|
||||||
|
|
||||||
|
- [Структура dockerfiles/](../dockerfiles/)
|
||||||
|
- [Makefile команды](../README.md#-управление-docker-образами)
|
||||||
|
- [Preset система](molecule-guide.md#preset-система)
|
||||||
|
- [CI/CD конфигурация](cicd-setup.md)
|
||||||
|
|
||||||
|
## 🔗 Полезные ссылки
|
||||||
|
|
||||||
|
- **Docker Hub**: https://hub.docker.com/r/inecs/ansible-lab
|
||||||
|
- **AnsibleLab**: https://devops.org.ru
|
||||||
|
- **Документация**: https://github.com/AnsibleLab/docs
|
||||||
Reference in New Issue
Block a user