haxorof.docker_ce
Rol de Ansible para Docker CE (Edición Comunitaria)
¡IMPORTANTE! Aunque este rol no liste soporte para algunas versiones de distribución, podría funcionar igual.
Este rol de Ansible instala y configura Docker CE (Edición Comunitaria) en varias distribuciones de Linux. El objetivo es que el usuario de este rol solo se preocupe por cómo se instalará y configurará Docker, ocultando las diferencias que existen en las diferentes distribuciones.
ansible-galaxy role install haxorof.docker_ce
Características
- Una forma de instalar y configurar Docker CE en las distribuciones de Linux soportadas.
- Soporte para la instalación del SDK de Docker y Docker Compose.
- Mejor esfuerzo en la instalación de complementos de Docker.
- Mejor esfuerzo en la desinstalación de Docker CE y su configuración relacionada.
- Realiza ajustes para evitar configuraciones defectuosas o que no funcionen en algunas distribuciones soportadas.
- Facilita la configuración de Docker según la documentación del Centro de Seguridad de Internet (CIS).
Distribuciones Soportadas
¡Nota! Algunas versiones de las distribuciones listadas a continuación solo tienen Python 2.7 instalado, y son compatibles solo con versiones de Ansible anteriores a 10.0.0 (o versiones de ansible-core inferiores a 2.17). Esto se debe a que el soporte para Python 2.7 fue eliminado en Ansible 10.0.0 (ansible-core 2.17).
- AlmaLinux1
- Amazon Linux1
- CentOS1
- CentOS Stream
- Debian
- Fedora
- Linux Mint1 (basado en Ubuntu).
- Raspbian (basado en Debian)
- RHEL
- Rocky Linux1
- Ubuntu
1 NB: Docker no soporta oficialmente completamente o parcialmente Docker CE en esta distribución y algunas funciones pueden no funcionar.
Puede haber otras distribuciones que también funcionen con este rol y que no están en la lista anterior al desactivar la verificación de distribución estableciendo la variable docker_do_checks
a no
.
Registro de Cambios
Puedes ver el registro de cambios aquí.
Compatibilidad con Ansible
- ansible
9.0.0
o posterior (ansible-core2.16
o posterior)
Para que este rol soporte múltiples versiones de Ansible, no es posible evitar todas las advertencias de desaprobación de Ansible. Consulta la documentación de Ansible si deseas desactivar advertencias de desaprobación.
Este rol intenta soportar la última y la versión principal anterior de Ansible. Para las versiones de Ansible soportadas, consulta aquí.
Requisitos de Colección de Ansible
Si solo está instalado ansible-core, estas colecciones también deben instalarse para que el rol funcione:
- ansible.posix
- community.general
Requisitos
No hay requisitos adicionales.
Variables del Rol
Las variables relacionadas con este rol se enumeran aquí.
Dependencias
Ninguna.
Ejemplo de Playbook
Las siguientes subsecciones muestran diferentes tipos de ejemplos para ilustrar lo que este rol soporta.
Más Simple
- hosts: docker
roles:
- role: haxorof.docker_ce
Configurar el demonio de Docker para usar proxy
- 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
Asegurar que Ansible puede usar módulos de Docker después de la instalación
- hosts: test-host
vars:
docker_sdk: true
docker_compose: true
roles:
- haxorof.docker_ce
post_tasks:
- name: Probar contenedor hello
become: yes
docker_container:
name: hello
image: hello-world
- name: Probar servicio hello
become: yes
docker_service:
project_name: hello
definition:
version: '3'
services:
hello:
image: "hello-world"
En camino hacia la instalación del motor Docker conforme a la seguridad CIS
Este ejemplo mínimo muestra qué tipo de configuración de rol se requiere para pasar las verificaciones del Banco de pruebas de Docker:
- 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
Debido a que la configuración anterior requiere que los espacios de nombres de usuario de Linux estén habilitados, pueden ser necesarios argumentos adicionales de GRUB. El ejemplo a continuación muestra qué cambios podrían ser necesarios y se requiere un reinicio del host para que los cambios surtan pleno efecto.
# 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: establecer user.max_user_namespaces
sysctl:
name: user.max_user_namespaces
value: 15000
sysctl_set: yes
state: present
reload: yes
become: yes
Para un ejemplo más completo que funcione en CentOS 7, consulta aquí.
Matriz de prueba automatizada
Aquí están los últimos resultados de la prueba automatizada que se encuentra en el directorio de pruebas:
¡Nota! Todas las distribuciones listadas en la matriz de prueba a continuación no proporcionan la última versión de Docker CE lanzada.
Suites de Prueba
Suite | ID | Comentario |
---|---|---|
s-1 | t_config | |
s-2 | t_postinstall | |
s-3 | t_auditd |
Matriz de Prueba
Símbolo | Definición |
---|---|
:heavy_check_mark: | Todos los tests pasaron |
:x: | Al menos una prueba falló / No soportado |
:heavy_minus_sign: | No se realizó prueba / No se ha probado aún |
# | s-1 | s-2 | s-3 | actualizado |
---|---|---|---|---|
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 |
Licencia
Este es un proyecto de código abierto bajo la licencia MIT.
Installs and configures Docker Community Edition (CE) on AlmaLinux/Rocky/CentOS/Fedora/RHEL/Ubuntu/Debian/Mint/Raspbian
ansible-galaxy install haxorof.docker_ce