docker

Ansible Роль: Docker

CI

Роль 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
Лицензия
mit
Загрузки
19734503
Владелец
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns