bsmeding.docker

Rol de Ansible: Docker

Una Rol de Ansible que instala Docker en Linux.

¡Por favor, solo instala la versión cuando CI esté APROBADA!

estado de prueba La rol está probada en distribuciones de Linux como Ubuntu, Debian y Rocky (similares a RedHat).

Descargas: Rol de Ansible

Original de geerlingguy.docker Adicional:

  • Eliminar PodMan de Linux RedHat
  • Añadir usuario y grupo docker:docker
  • Añadir el usuario de Ansible actual al grupo docker
  • Establecer docker_uid y docker_gui a los ID del usuario y grupo docker. Esto se puede usar en otras roles de Ansible de mí que usan docker. Esto creará una instalación sin problemas.

Requisitos

Ninguno.

Variables de rol

Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml):

# La edición puede ser una de: 'ce' (Edición Comunitaria) o 'ee' (Edición Empresarial).
docker_edition: 'ce'
docker_packages:
    - "docker-{{ docker_edition }}"
    - "docker-{{ docker_edition }}-cli"
    - "docker-{{ docker_edition }}-rootless-extras"
docker_packages_state: present

La docker_edition debe ser ce (Edición Comunitaria) o ee (Edición Empresarial). También puedes especificar una versión específica de Docker para instalar usando el formato específico de la distribución: Red Hat/CentOS: docker-{{ docker_edition }}-<VERSION> (Nota: debes añadir esto a todos los paquetes); Debian/Ubuntu: docker-{{ docker_edition }}=<VERSION> (Nota: debes añadir esto a todos los paquetes).

Puedes controlar si el paquete está instalado, desinstalado o en la última versión estableciendo docker_packages_state a present, absent o latest, respectivamente. Ten en cuenta que el demonio de Docker se reiniciará automáticamente si se actualiza el paquete Docker. Esto es un efecto secundario de eliminar todos los controladores (ejecutar cualquier controlador que haya sido notificado por esta y otras roles hasta este punto en el juego).

docker_service_manage: true
docker_service_state: started
docker_service_enabled: true
docker_restart_handler_state: restarted

Variables para controlar el estado del servicio docker y si debe iniciarse al arrancar. Si estás instalando Docker dentro de un contenedor de Docker sin systemd o sysvinit, debes establecer docker_service_manage a false.

docker_install_compose_plugin: false
docker_compose_package: docker-compose-plugin
docker_compose_package_state: present

Opciones de instalación del Plugin de Docker Compose. Estos difieren de las siguientes en que docker-compose se instala como un plugin de docker (y se usa con docker compose) en lugar de un binario independiente.

docker_install_compose: true
docker_compose_version: "1.26.0"
docker_compose_arch: "{{ ansible_architecture }}"
docker_compose_path: /usr/local/bin/docker-compose

Opciones de instalación de Docker Compose.

docker_add_repo: true

Controla si esta rol añadirá el repositorio oficial de Docker. Establece a false si deseas usar los paquetes de docker predeterminados para tu sistema o gestionar el repositorio del paquete por tu cuenta.

docker_repo_url: https://download.docker.com/linux

La URL principal del repositorio de Docker, común entre sistemas Debian y 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"

(Solo se usa para Debian/Ubuntu). Puedes cambiar el canal a nightly si deseas usar la versión Nightly.

Puedes cambiar docker_apt_gpg_key a una URL diferente si estás detrás de un firewall o si proporcionas un espejo confiable. Normalmente en combinación con el cambio de docker_apt_repository también. docker_apt_filename controla el nombre del archivo de lista de fuentes creado en sources.list.d. Si estás actualizando desde una versión anterior (<7.0.0) de esta rol, debes cambiar esto al nombre del archivo existente (por ejemplo, download_docker_com_linux_debian en Debian) para evitar listas en conflicto.

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"

(Solo se usa para RedHat/CentOS). Puedes habilitar el repositorio Nightly o Test configurando las variables respectivas a 1.

Puedes cambiar docker_yum_gpg_key a una URL diferente si estás detrás de un firewall o si proporcionas un espejo confiable. Normalmente en combinación con el cambio de docker_yum_repository también.

docker_users:
  - user1
  - user2

Una lista de usuarios del sistema que se añadirán al grupo docker (para que puedan usar Docker en el servidor). También se añadirá el usuario actual de Ansible.

docker_daemon_options:
  storage-driver: "devicemapper"
  log-opts:
    max-size: "100m"

Opciones personalizadas de dockerd que se pueden configurar a través de este diccionario que representa el archivo json /etc/docker/daemon.json.

Información del Autor

Esta rol fue creada en 2017 por Jeff Geerling, autor de Ansible for DevOps.

Cambió con algunas configuraciones adicionales por mí (Bart Smeding) para integrarla en mis otras roles de aplicaciones de contenedores de Ansible.

INFO\

Si recibes el error "Error connecting: Error while fetching server API version: Not supported URL scheme http+docker"} por favor actualiza las colecciones de Ansible: (o configura la librería de python requests a < 2.32.0 )

  - name: community.general
  - name: community.docker
Acerca del proyecto

Docker for Linux, Forked from geerlingguy.docker.

Instalar
ansible-galaxy install bsmeding.docker
Licencia
mit
Descargas
7.3k
Propietario
Network Automation Consultant | NetDevOps | DevNetOps | AI in networking | Home Automation