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 | Описание | Хосты | | ||||
| |--------|----------|-------| | ||||
| | `default` | Стандартный preset | 2 хоста (Ubuntu + CentOS) | | ||||
| | `minimal` | Минимальный preset | 1 хост (Debian) | | ||||
| | `mytest` | Кастомный preset | 3 хоста | | ||||
| #### Базовые | ||||
| - **`default`** - Стандартный preset (2 хоста: Ubuntu + Debian) | ||||
| - **`minimal`** - Минимальный preset (1 хост: Debian) | ||||
| - **`test`** - Базовый тест (2 хоста) | ||||
| - **`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 | ||||
|  | ||||
| @@ -447,7 +463,7 @@ make custom-images                # справка по собственным  | ||||
|  | ||||
| ### Docker образы | ||||
|  | ||||
| - **[dockerfiles/README.md](dockerfiles/README.md)** - Информация об образах | ||||
| - **[docs/dockerfiles.md](docs/dockerfiles.md)** - Полная документация по 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