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
		
			
				
	
	
		
			194 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			194 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Роль 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
 |