bsmeding.docker
Ansible Роль: Docker
Ansible роль, которая устанавливает Docker на Linux.
Пожалуйста, устанавливайте версию только тогда, когда CI ПРОЙДЕН!
Роль тестировалась на дистрибутивах Linux: Ubuntu, Debian и Rocky (похожий на RedHat).
Загрузки:
Оригинал от geerlingguy.docker Дополнительно:
- Удалить PodMan из RedHat Linux
- Добавить пользователя и группу docker:docker
- Добавить текущего пользователя Ansible в группу docker
- Установить
docker_uid
иdocker_gui
на ID пользователя и группы Docker. Это можно использовать в других ролях Ansible от меня, которые все используют Docker. Это создаст бесшовную установку.
Требования
Нет.
Переменные роли
Доступные переменные перечислены ниже вместе с значениями по умолчанию (см. defaults/main.yml
):
# Издание может быть одной из: 'ce' (Community Edition) или 'ee' (Enterprise Edition).
docker_edition: 'ce'
docker_packages:
- "docker-{{ docker_edition }}"
- "docker-{{ docker_edition }}-cli"
- "docker-{{ docker_edition }}-rootless-extras"
docker_packages_state: present
docker_edition
должен быть либо ce
(Community Edition), либо ee
(Enterprise Edition).
Вы также можете указать конкретную версию Docker для установки, используя специфичный для дистрибутива формат:
Red Hat/CentOS: docker-{{ docker_edition }}-<VERSION>
(Обратите внимание: это нужно добавить ко всем пакетам);
Debian/Ubuntu: docker-{{ docker_edition }}=<VERSION>
(Обратите внимание: это нужно добавить ко всем пакетам).
Вы можете контролировать, установлен ли пакет, удален или обновлен до последней версии, установив docker_packages_state
на present
, absent
или latest
соответственно. Обратите внимание, что демон Docker будет автоматически перезапущен, если пакет Docker будет обновлен. Это побочный эффект очистки всех обработчиков (запуск любого из обработчиков, которые были уведомлены этой ролью и любой другой ролью на данный момент).
docker_service_manage: true
docker_service_state: started
docker_service_enabled: true
docker_restart_handler_state: restarted
Переменные для управления состоянием сервиса docker
и тем, должен ли он запускаться при загрузке. Если вы устанавливаете Docker внутри контейнера Docker без systemd или sysvinit, вы должны установить docker_service_manage
на false
.
docker_install_compose_plugin: false
docker_compose_package: docker-compose-plugin
docker_compose_package_state: present
Опции установки плагина Docker Compose. Эти опции отличаются от нижеприведенных тем, что docker-compose устанавливается как плагин Docker (и используется с docker compose
), а не как отдельный бинарный файл.
docker_install_compose: true
docker_compose_version: "1.26.0"
docker_compose_arch: "{{ ansible_architecture }}"
docker_compose_path: /usr/local/bin/docker-compose
Опции установки Docker Compose.
docker_add_repo: true
Контролирует, добавит ли эта роль официальный репозиторий Docker. Установите на false
, если хотите использовать пакеты Docker по умолчанию для вашей системы или управлять репозиторием пакетов самостоятельно.
docker_repo_url: https://download.docker.com/linux
Основной URL репозитория Docker, который общий для систем Debian и RHEL.
docker_apt_release_channel: stable
docker_apt_arch: "{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}"
docker_apt_repository: "deb [arch={{ docker_apt_arch }}] {{ docker_repo_url }}/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}"
docker_apt_ignore_key_error: True
docker_apt_gpg_key: "{{ docker_repo_url }}/{{ ansible_distribution | lower }}/gpg"
docker_apt_filename: "docker"
(Используется только для Debian/Ubuntu.) Вы можете переключить канал на nightly
, если хотите использовать сборку Nightly.
Вы можете изменить docker_apt_gpg_key
на другой URL, если вы находитесь за фаерволом или иметь надежное зеркало.
Обычно это идет в сочетании с изменением и docker_apt_repository
. docker_apt_filename
управляет именем файла списка источников, созданного в sources.list.d
. Если вы обновляетесь с более старой (<7.0.0) версии этой роли, вам следует изменить это на имя существующего файла (например, download_docker_com_linux_debian
на Debian), чтобы избежать конфликтующих списков.
docker_yum_repo_url: "{{ docker_repo_url }}/{{ (ansible_distribution == 'Fedora') | ternary('fedora','centos') }}/docker-{{ docker_edition }}.repo"
docker_yum_repo_enable_nightly: '0'
docker_yum_repo_enable_test: '0'
docker_yum_gpg_key: "{{ docker_repo_url }}/centos/gpg"
(Используется только для RedHat/CentOS.) Вы можете включить Nightly или Test репозиторий, установив соответствующие переменные на 1
.
Вы можете изменить docker_yum_gpg_key
на другой URL, если вы находитесь за фаерволом или имеете надежное зеркало.
Обычно это идет в сочетании с изменением и docker_yum_repository
.
docker_users:
- user1
- user2
Список системных пользователей, которые будут добавлены в группу docker
(чтобы они могли использовать Docker на сервере). Обратите внимание, что текущий пользователь Ansible также будет добавлен.
docker_daemon_options:
storage-driver: "devicemapper"
log-opts:
max-size: "100m"
Пользовательские параметры dockerd
можно настроить через этот словарь, представляющий json файл /etc/docker/daemon.json
.
Информация об авторе
Эта роль была создана в 2017 году Джеффом Гирлингом, автором Ansible for DevOps.
Изменена с некоторыми дополнительными настройками мной (Барт Смединг) для интеграции в другие роли Ansible для контейнеров.
ИНФОРМАЦИЯ\
Если вы получили ошибку "Error connecting: Error while fetching server API version: Not supported URL scheme http+docker"}
, пожалуйста, обновите коллекции Ansible:
(или установите библиотеку запросов Python на < 2.32.0 )
- name: community.general
- name: community.docker
Docker for Linux, Forked from geerlingguy.docker.
ansible-galaxy install bsmeding.docker