docker_ce

Ansible Роль для Docker CE (Community Edition)

ВАЖНО! Даже если эта роль не поддерживает некоторые версии дистрибутивов, она все равно может работать.

GitHub tag Ansible Role License: MIT Build Status

Эта роль Ansible устанавливает и настраивает Docker CE (Community Edition) на нескольких различных дистрибутивах Linux. Цель состоит в том, чтобы пользователь этой роли мог просто заботиться о том, как должен быть установлен и настроен Docker, скрывая различия, существующие в разных дистрибутивах.

ansible-galaxy role install haxorof.docker_ce

Функции

  • Один способ установки и настройки Docker CE на поддерживаемых дистрибутивах Linux.
  • Поддержка установки Docker SDK и Docker Compose.
  • Поддержка установки плагинов Docker на основе имеющихся ресурсов.
  • Поддержка удаления Docker CE и связанной конфигурации.
  • Настройка для избегания ошибочных или нерабочих конфигураций в некоторых поддерживаемых дистрибутивах.
  • Упрощение настройки Docker в соответствии с документацией Центра безопасности Интернета (CIS).

Поддерживаемые дистрибутивы

Примечание! Некоторые версии дистрибутивов, перечисленных ниже, имеют установленный только Python 2.7, они совместимы только с версиями Ansible ниже 10.0.0 (или ansible-core версиями ниже 2.17). Это связано с тем, что поддержка Python 2.7 была исключена в Ansible 10.0.0 (ansible-core 2.17).

  • AlmaLinux1
  • Amazon Linux1
  • CentOS1
  • CentOS Stream
  • Debian
  • Fedora
  • Linux Mint1 (основан на Ubuntu).
  • Raspbian (основан на Debian)
  • RHEL
  • Rocky Linux1
  • Ubuntu

1 Примечание: Docker не официально поддерживает полную или частичную работу Docker CE на этом дистрибутиве, и некоторые функции могут не работать.

Могут быть и другие дистрибутивы, которые также работают с этой ролью, но не входят в вышеперечисленный список, если отключить проверку дистрибутива, установив переменную docker_do_checks в no.

Журнал изменений

Смотрите журнал изменений здесь

Совместимость с Ansible

  • ansible 9.0.0 или новее (ansible-core 2.16 или новее)

Чтобы эта роль поддерживала несколько версий Ansible, невозможно избежать всех предупреждений об устаревших функциях Ansible. Прочитайте документацию Ansible, если хотите отключить предупреждения об устаревании.

Эта роль пытается поддерживать последние и предыдущие основные версии Ansible. Для поддерживаемых версий Ansible смотрите здесь

Требования к коллекциям Ansible

Если установлен только ansible-core, эти коллекции также должны быть установлены для работы роли:

  • ansible.posix
  • community.general

Требования

Нет дополнительных требований.

Переменные роли

Переменные, относящиеся к этой роли, перечислены здесь

Зависимости

Нет.

Пример playbook

Следующие подразделы показывают различные примеры для иллюстрации того, что поддерживает эта роль.

Самый простой

- hosts: docker
  roles:
    - role: haxorof.docker_ce

Настройка Docker daemon для использования прокси

- hosts: docker
  vars:
    docker_daemon_envs:
      HTTP_PROXY: http://localhost:3128/
      NO_PROXY: localhost,127.0.0.1,docker-registry.somecorporation.com
  roles:
    - haxorof.docker_ce

Убедиться, что Ansible может использовать модули Docker после установки

- hosts: test-host
  vars:
    docker_sdk: true
    docker_compose: true
  roles:
    - haxorof.docker_ce
  post_tasks:
    - name: Тест контейнера hello
      become: yes
      docker_container:
        name: hello
        image: hello-world

    - name: Тест сервиса hello
      become: yes
      docker_service:
        project_name: hello
        definition:
          version: '3'
          services:
            hello:
              image: "hello-world"

На пути к соответствующей установке Docker с учетом безопасности CIS

Этот минимальный пример ниже показывает, какая конфигурация роли требуется для успешного прохождения проверок Docker bench:

- hosts: docker
  vars:
    docker_plugins:
      - type: authz
        alias: opa-docker-authz
        name: openpolicyagent/opa-docker-authz-v2:0.9
        args: opa-args="-policy-file /opa/policies/authz.rego"
    docker_enable_audit: yes
    docker_daemon_config:
      icc: false
      log-driver: journald
      userns-remap: default
      live-restore: true
      userland-proxy: false
      no-new-privileges: true
  roles:
    - haxorof.docker_ce

Поскольку вышеупомянутая конфигурация требует включения пространств имён пользователей Linux, могут понадобиться дополнительные параметры GRUB. Пример ниже демонстрирует изменения, которые могут потребоваться, и перезагрузка хоста необходима для полного применения изменений.

# https://success.docker.com/article/user-namespace-runtime-error

- hosts: docker
  roles:
    - role: jtyr.grub_cmdline
      vars:
        grub_cmdline_add_args:
          - namespace.unpriv_enable=1
          - user_namespace.enable=1
      become: yes
  tasks:
    - name: установить user.max_user_namespaces
      sysctl:
        name: user.max_user_namespaces
        value: 15000
        sysctl_set: yes
        state: present
        reload: yes
      become: yes

Для более полного рабочего примера на CentOS 7 смотрите здесь.

Автоматизированная матрица тестирования

Вот последние результаты тестов автоматизированной проверки, которые находятся в каталоге tests:

Примечание! Все дистрибутивы, перечисленные в матрице тестирования ниже, не предоставили последнюю выпущенную версию Docker CE.

Тестовые комплекты

Набор ID Комментарий
s-1 t_config
s-2 t_postinstall
s-3 t_auditd

Тестовая матрица

Символ Определение
:heavy_check_mark: Все тесты пройдены
:x: По крайней мере один тест не прошел / Не поддерживается
:heavy_minus_sign: Тест не выполнен / Еще не протестирован
# s-1 s-2 s-3 обновлено
AlmaLinux 8 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
AlmaLinux 9 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Amazon Linux 2 :heavy_check_mark: :x: :heavy_check_mark: 2024-08-02
Amazon Linux 2023 :heavy_check_mark: :x: :heavy_check_mark: 2024-08-02
CentOS Stream 9 :heavy_minus_sign: :heavy_minus_sign: :heavy_minus_sign: 2024-08-02
Debian 11 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Debian 12 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Fedora 39 :heavy_minus_sign: :heavy_minus_sign: :heavy_minus_sign: 2024-08-02
Fedora 40 :heavy_minus_sign: :heavy_minus_sign: :heavy_minus_sign: 2024-08-02
Rocky Linux 8 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Rocky Linux 9 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Ubuntu 20.04 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Ubuntu 22.04 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Ubuntu 24.04 :heavy_minus_sign: :heavy_minus_sign: :heavy_minus_sign: 2024-08-02
RHEL 8 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-12
RHEL 9 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-12

Лицензия

Это проект с открытым исходным кодом под лицензией MIT.

О проекте

Installs and configures Docker Community Edition (CE) on AlmaLinux/Rocky/CentOS/Fedora/RHEL/Ubuntu/Debian/Mint/Raspbian

Установить
ansible-galaxy install haxorof/ansible-role-docker-ce
Лицензия
mit
Загрузки
238015
Владелец