docker
Ansible Роль: Docker
Роль Ansible, которая устанавливает Docker на Linux.
Требования
Нет.
Переменные Роли
Доступные переменные перечислены ниже с их значениями по умолчанию (см. 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_obsolete_packages:
- docker
- docker.io
- docker-engine
- podman-docker
- containerd
- runc
Список пакетов, которые следует удалить перед выполнением этой роли. См. инструкции по установке 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: true
docker_compose_package: docker-compose-plugin
docker_compose_package_state: present
Опции установки плагина Docker Compose. Эти параметры отличаются тем, что docker-compose устанавливается как плагин Docker (и используется с docker compose
), а не как отдельный бинарный файл.
docker_install_compose: false
docker_compose_version: "2.11.1"
docker_compose_arch: "{{ ansible_architecture }}"
docker_compose_url: "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-linux-{{ docker_compose_arch }}"
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
, если хотите использовать Ночной релиз.
Вы можете изменить docker_apt_gpg_key
на другой URL, если вы за файрволом или предоставить надёжное зеркало.
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.) Вы можете включить Ночной или Тестовый репозиторий, установив соответствующие переменные в 1
.
docker_users:
- user1
- user2
Список системных пользователей, которых следует добавить в группу docker
(чтобы они могли использовать Docker на сервере).
docker_daemon_options:
storage-driver: "devicemapper"
log-opts:
max-size: "100m"
Пользовательские параметры dockerd
могут быть настроены через этот словарь, представляющий JSON-файл /etc/docker/daemon.json
.
Использование с Ansible (и библиотекой docker
Python)
Многие пользователи этой роли также хотят использовать Ansible для создания образов Docker и управления контейнерами Docker на сервере, где установлен Docker. В этом случае вы можете легко добавить библиотеку docker
Python с помощью роли geerlingguy.pip
:
- hosts: all
vars:
pip_install_packages:
- name: docker
roles:
- geerlingguy.pip
- geerlingguy.docker
Зависимости
Нет.
Пример Плейбука
- hosts: all
roles:
- geerlingguy.docker
Лицензия
MIT / BSD
Спонсоры
- We Manage: Помощь стартапам и выросшим компаниям в устойчивом масштабировании их инфраструктуры.
Вышеупомянутые спонсоры поддерживают Джеффа Гирлинга на GitHub Sponsors. Вы также можете поддержать работу Джеффа, чтобы помочь ему продолжать улучшать эти открытые проекты Ansible!
Информация об авторе
Эта роль была создана в 2017 году Джеффом Гирлингом, автором Ansible for DevOps.
ansible-galaxy install geerlingguy/ansible-role-docker