geerlingguy.docker

Rol de Ansible: Docker

CI

Una Rol de Ansible que instala Docker en Linux.

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: '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 }}-<VERSIÓN> (Nota: debes agregar esto a todos los paquetes);
Debian/Ubuntu: docker-{{ docker_edition }}=<VERSIÓN> (Nota: debes agregar esto a todos los paquetes).

Puedes controlar si el paquete se instala, desinstala o se actualiza a la última versión configurando docker_packages_state como present, absent o latest, respectivamente. Nota que el daemon de Docker se reiniciará automáticamente si se actualiza el paquete de Docker. Este es un efecto secundario de procesar todos los manejadores (ejecutando cualquier manejador que haya sido notificado hasta este punto en el play).

docker_obsolete_packages:
  - docker
  - docker.io
  - docker-engine
  - podman-docker
  - containerd
  - runc

Una lista de paquetes que se desinstalarán antes de ejecutar esta rol. Consulta las instrucciones de instalación de Docker para una lista actualizada de los paquetes antiguos que deben ser eliminados.

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 Docker sin systemd o sysvinit, debes establecer docker_service_manage como false.

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

Opciones para la instalación del plugin Docker Compose. Estas son diferentes 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: false
docker_compose_version: "2.11.1"
docker_compose_arch: "{{ ansible_architecture }}"
docker_compose_url: "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-linux-{{ docker_compose_arch }}"
docker_compose_path: /usr/local/bin/docker-compose

Opciones para la instalación de Docker Compose.

docker_add_repo: true

Controla si esta rol añadirá el repositorio oficial de Docker. Establece como false si deseas utilizar los paquetes de docker predeterminados para tu sistema o gestionar el repositorio de paquetes 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 proporcionar un espejo confiable. Generalmente, esto se combina con cambiar docker_apt_repository también. docker_apt_filename controla el nombre del archivo de lista fuente creado en sources.list.d. Si estás actualizando desde una versión más antigua (<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 estableciendo las vars respectivas a 1.

Puedes cambiar docker_yum_gpg_key a una URL diferente si estás detrás de un firewall o proporcionar un espejo confiable. Generalmente, esto se combina con cambiar también el docker_yum_repository.

docker_users:
  - user1
  - user2

Una lista de usuarios del sistema que se agregarán al grupo docker (para que puedan usar Docker en el servidor).

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

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

Uso con Ansible (y la biblioteca Python docker)

Muchos usuarios de esta rol desean también usar Ansible para luego construir imágenes Docker y gestionar contenedores Docker en el servidor donde se instala Docker. En este caso, puedes agregar fácilmente la biblioteca Python docker usando la rol geerlingguy.pip:

- hosts: all

  vars:
    pip_install_packages:
      - name: docker

  roles:
    - geerlingguy.pip
    - geerlingguy.docker

Dependencias

Ninguna.

Ejemplo de Playbook

- hosts: all
  roles:
    - geerlingguy.docker

Licencia

MIT / BSD

Patrocinadores

  • We Manage: Ayudando a startups y empresas a escalar su infraestructura de manera sostenible.

Los patrocinadores anteriores están apoyando a Jeff Geerling en GitHub Sponsors. ¡También puedes patrocinar el trabajo de Jeff para ayudarlo a seguir mejorando estos proyectos de código abierto de Ansible!

Información del Autor

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

Instalar
ansible-galaxy install geerlingguy.docker
Licencia
mit
Descargas
22.2M
Propietario
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns