Files
DevOpsLab/roles/docker/README.md
Сергей Антропов b41c110c16
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
feat: добавлена универсальная роль docker и обновлена документация
- Создана универсальная роль docker для установки Docker и Docker Compose
- Поддержка Debian, Ubuntu, CentOS, AlmaLinux, Rocky, RHEL
- Установка через официальный репозиторий или get.docker.com
- Полностью переписана документация README.md с актуальной информацией
- Добавлен preset mytest для тестирования
- Обновлен roles/deploy.yml с актуальными ролями

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-10-26 00:58:00 +03:00

194 lines
5.3 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
## Описание
Универсальная роль 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