bsmeding.docker

Ansible Роль: Docker

Ansible роль, которая устанавливает Docker на Linux.

Пожалуйста, устанавливайте версию только тогда, когда CI ПРОЙДЕН!

статус теста Роль тестировалась на дистрибутивах Linux: Ubuntu, Debian и Rocky (похожий на RedHat).

Загрузки: Ansible Роль

Оригинал от 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
Лицензия
mit
Загрузки
7.2k
Владелец
Network Automation Consultant | NetDevOps | DevNetOps | AI in networking | Home Automation