feat: добавлена универсальная роль 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

- Создана универсальная роль docker для установки Docker и Docker Compose
- Поддержка Debian, Ubuntu, CentOS, AlmaLinux, Rocky, RHEL
- Установка через официальный репозиторий или get.docker.com
- Полностью переписана документация README.md с актуальной информацией
- Добавлен preset mytest для тестирования
- Обновлен roles/deploy.yml с актуальными ролями

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
Сергей Антропов
2025-10-26 00:58:00 +03:00
parent 304a5e4ebf
commit b41c110c16
11 changed files with 1047 additions and 1990 deletions

193
roles/docker/README.md Normal file
View File

@@ -0,0 +1,193 @@
# Роль docker
## Описание
Универсальная роль Ansible для установки и настройки Docker и Docker Compose на различных Linux-дистрибутивах.
Роль автоматически определяет семейство ОС (Debian/Ubuntu или Red Hat/CentOS/AlmaLinux) и использует соответствующий метод установки.
**Поддерживаемые ОС:**
- Debian 9/10/11/12
- Ubuntu 20.04/22.04/24.04
- CentOS 7/8/9
- AlmaLinux 8/9
- Rocky Linux 8/9
- RHEL 8/9
**Автор:** Сергей Антропов
**Сайт:** https://devops.org.ru
## Переменные
| Переменная | По умолчанию | Описание |
|------------|--------------|----------|
| `docker_version` | `"latest"` | Версия Docker CE для установки |
| `docker_compose_version` | `"latest"` | Версия Docker Compose (для standalone версии) |
| `docker_use_official_repo` | `true` | Использовать официальный репозиторий Docker |
| `docker_use_compose_plugin` | `true` | Использовать docker-compose-plugin вместо standalone |
| `docker_users` | `[]` | Список пользователей для добавления в группу docker |
| `docker_service_enabled` | `true` | Автозапуск Docker при загрузке |
| `docker_service_state` | `started` | Состояние службы Docker |
| `docker_additional_packages` | `[]` | Дополнительные пакеты для установки |
| `docker_install_method` | `"official"` | Метод установки: 'official' или 'get.docker.com' |
## Примеры использования
### Базовое использование
```yaml
- hosts: all
roles:
- docker
```
### Установка с добавлением пользователей
```yaml
- hosts: all
roles:
- role: docker
vars:
docker_users:
- ansible
- deploy
```
### Установка через скрипт get.docker.com
```yaml
- hosts: all
roles:
- role: docker
vars:
docker_install_method: "get.docker.com"
docker_use_official_repo: false
```
### Установка standalone Docker Compose
```yaml
- hosts: all
roles:
- role: docker
vars:
docker_use_compose_plugin: false
docker_compose_version: "2.23.0"
```
### Установка с дополнительными пакетами
```yaml
- hosts: all
roles:
- role: docker
vars:
docker_additional_packages:
- docker-ce-rootless-extras
```
## Зависимости
Нет зависимостей от других ролей.
## Требования
- Ansible 2.9+
- Python 3.6+
- Права sudo на целевых хостах
- Доступ к интернету для загрузки пакетов
## Что делает роль
1. Определяет семейство ОС (Debian или Red Hat)
2. Устанавливает необходимые зависимости
3. Добавляет официальный репозиторий Docker
4. Устанавливает Docker CE и Docker Compose
5. Запускает и включает службу Docker
6. Создает группу docker
7. Добавляет пользователей в группу docker
8. Проверяет корректность установки
## Проверка установки
После выполнения роли проверьте установку:
```bash
# Проверка версии Docker
docker --version
# Проверка версии Docker Compose
docker compose version
# или
docker-compose --version
# Проверка статуса службы
systemctl status docker
# Проверка информации о Docker
docker info
```
## Пример playbook для тестирования
```yaml
---
- name: Установка Docker на все хосты
hosts: all
become: yes
roles:
- role: docker
vars:
docker_users:
- ansible
docker_use_compose_plugin: true
post_tasks:
- name: Запуск тестового контейнера
docker_container:
name: hello-world
image: hello-world:latest
state: started
- name: Проверка запущенных контейнеров
command: docker ps -a
register: docker_ps
changed_when: false
- name: Вывод списка контейнеров
debug:
var: docker_ps.stdout_lines
```
## Troubleshooting
### Docker не запускается
Проверьте журналы systemd:
```bash
sudo journalctl -u docker.service
```
### Проблемы с репозиторием
Для Ubuntu/Debian, если репозиторий не добавляется:
```bash
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
```
### Проблемы с правами
Если пользователь не может запускать docker без sudo:
```bash
sudo usermod -aG docker $USER
# Выйдите и войдите снова
```
## Лицензия
MIT
## Автор
Сергей Антропов - https://devops.org.ru