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
5.3 KiB
5.3 KiB
Роль 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' |
Примеры использования
Базовое использование
- hosts: all
roles:
- docker
Установка с добавлением пользователей
- hosts: all
roles:
- role: docker
vars:
docker_users:
- ansible
- deploy
Установка через скрипт get.docker.com
- hosts: all
roles:
- role: docker
vars:
docker_install_method: "get.docker.com"
docker_use_official_repo: false
Установка standalone Docker Compose
- hosts: all
roles:
- role: docker
vars:
docker_use_compose_plugin: false
docker_compose_version: "2.23.0"
Установка с дополнительными пакетами
- hosts: all
roles:
- role: docker
vars:
docker_additional_packages:
- docker-ce-rootless-extras
Зависимости
Нет зависимостей от других ролей.
Требования
- Ansible 2.9+
- Python 3.6+
- Права sudo на целевых хостах
- Доступ к интернету для загрузки пакетов
Что делает роль
- Определяет семейство ОС (Debian или Red Hat)
- Устанавливает необходимые зависимости
- Добавляет официальный репозиторий Docker
- Устанавливает Docker CE и Docker Compose
- Запускает и включает службу Docker
- Создает группу docker
- Добавляет пользователей в группу docker
- Проверяет корректность установки
Проверка установки
После выполнения роли проверьте установку:
# Проверка версии Docker
docker --version
# Проверка версии Docker Compose
docker compose version
# или
docker-compose --version
# Проверка статуса службы
systemctl status docker
# Проверка информации о Docker
docker info
Пример playbook для тестирования
---
- 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:
sudo journalctl -u docker.service
Проблемы с репозиторием
Для Ubuntu/Debian, если репозиторий не добавляется:
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
Проблемы с правами
Если пользователь не может запускать docker без sudo:
sudo usermod -aG docker $USER
# Выйдите и войдите снова
Лицензия
MIT
Автор
Сергей Антропов - https://devops.org.ru