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
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:
193
roles/docker/README.md
Normal file
193
roles/docker/README.md
Normal 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
|
||||
Reference in New Issue
Block a user