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.

GitHub tag Ansible Role Licencia: MIT Estado de la construcción

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-core 2.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.

Acerca del proyecto

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

Instalar
ansible-galaxy install haxorof.docker_ce
Licencia
mit
Descargas
285.2k
Propietario