docker_ce
Ansible Роль для Docker CE (Community Edition)
ВАЖНО! Даже если эта роль не поддерживает некоторые версии дистрибутивов, она все равно может работать.
Эта роль 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-core2.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