sorrowless.docker

Rôle Ansible : Docker

CI

Un rôle Ansible qui installe Docker sur Linux.

Exigences

Aucune.

Variables du rôle

Les variables disponibles sont listées ci-dessous, avec des valeurs par défaut (voir defaults/main.yml):

# L'édition peut être soit 'ce' (Édition Communautaire) soit 'ee' (Édition Entreprise).
# Vous pouvez définir la version de Docker par la variable docker_version, par exemple : '=5:23.0.2-1~ubuntu.20.04~focal'
docker_edition: 'ce'
docker_version: ''
docker_packages:
  - "docker-{{ docker_edition }}{{ docker_version }}"
  - "docker-{{ docker_edition }}-cli{{ docker_version}}"
  - "docker-{{ docker_edition }}-rootless-extras{{ docker_version}}"
  - "containerd.io"
docker_packages_state: présent

La variable docker_edition doit être soit ce (Édition Communautaire) soit ee (Édition Entreprise). Vous pouvez également spécifier une version spécifique de Docker à installer en utilisant la variable "docker_version" : docker_version: '=5:23.0.2-1ubuntu.20.04focal'

Vous pouvez contrôler si le paquet doit être installé, désinstallé ou à la dernière version en réglant docker_packages_state sur présent, absent ou latest, respectivement. Notez que le service Docker sera automatiquement redémarré si le paquet Docker est mis à jour. Ceci est un effet secondaire de l'exécution de tous les gestionnaires (en faisant fonctionner tous les gestionnaires qui ont été notifiés par ce rôle et par tout autre rôle jusqu'à ce point dans le play).

docker_service_manage: vrai
docker_service_state: démarré
docker_service_enabled: vrai
docker_restart_handler_state: redémarré

Variables pour contrôler l'état du service docker, et s'il doit démarrer au démarrage. Si vous installez Docker à l'intérieur d'un conteneur Docker sans systemd ou sysvinit, vous devez régler docker_service_manage sur faux.

docker_install_compose_plugin: faux
docker_compose_package: docker-compose-plugin
docker_compose_package_state: présent

Options d'installation du plugin Docker Compose. Cela diffère de ce qui suit dans le sens où docker-compose est installé en tant que plugin Docker (et utilisé avec docker compose) au lieu d'un binaire autonome.

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

Options d'installation de Docker Compose.

docker_add_repo: vrai

Contrôle si ce rôle ajoutera le dépôt officiel de Docker. Réglez sur faux si vous souhaitez utiliser les paquets Docker par défaut de votre système ou gérer le dépôt de paquets vous-même.

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

L'URL du dépôt Docker principal, commune entre les systèmes Debian et 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: vrai
docker_apt_gpg_key: "{{ docker_repo_url }}/{{ ansible_distribution | lower }}/gpg"
docker_apt_filename: "docker"

(Utilisé uniquement pour Debian/Ubuntu.) Vous pouvez changer le canal en nightly si vous souhaitez utiliser la version Nightly.

Vous pouvez changer docker_apt_gpg_key à une URL différente si vous êtes derrière un pare-feu ou fournir un miroir de confiance. Généralement en combinaison avec le changement de docker_apt_repository aussi. docker_apt_filename contrôle le nom du fichier de liste source créé dans sources.list.d. Si vous mettez à jour d'une version antérieure (<7.0.0) de ce rôle, vous devez changer cela au nom du fichier existant (par exemple download_docker_com_linux_debian sur Debian) pour éviter les listes conflictuelles.

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"

(Utilisé uniquement pour RedHat/CentOS.) Vous pouvez activer le dépôt Nightly ou Test en réglant les variables respectives à 1.

Vous pouvez changer docker_yum_gpg_key à une URL différente si vous êtes derrière un pare-feu ou fournir un miroir de confiance. Généralement en combinaison avec le changement de docker_yum_repository aussi.

docker_users:
  - user1
  - user2

Une liste d'utilisateurs du système à ajouter au groupe docker (pour qu'ils puissent utiliser Docker sur le serveur).

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

Des options personnalisées pour dockerd peuvent être configurées à travers ce dictionnaire représentant le fichier json /etc/docker/daemon.json.

Pour vous connecter au registre, vous devez définir les variables suivantes :

  • docker_registry_url
  • docker_registry_user
  • docker_registry_password

Utilisation avec Ansible (et la bibliothèque Python docker)

De nombreux utilisateurs de ce rôle souhaitent également utiliser Ansible pour ensuite construire des images Docker et gérer des conteneurs Docker sur le serveur où Docker est installé. Dans ce cas, vous pouvez facilement ajouter la bibliothèque Python docker en utilisant le rôle geerlingguy.pip :

- hosts: all

  vars:
    pip_install_packages:
      - name: docker

  roles:
    - geerlingguy.pip
    - geerlingguy.docker

Pour configurer un swarm, vous devez ajouter la variable docker_swarm_configure: true pour tous les nœuds, et docker_swarm_manager: true pour les gestionnaires. inventory_hostname doit être égal au nom d'hôte (ansible_hostname) pour que les nœuds à distance soient correctement identifiés.

Dépendances

Aucune.

Exemple de Playbook

- hosts: all
  roles:
    - geerlingguy.docker

Licence

MIT / BSD

Sponsors

  • We Manage : Aide les start-ups et les entreprises à faire évoluer leur infrastructure de manière durable.

Les sponsors ci-dessus soutiennent Jeff Geerling sur GitHub Sponsors. Vous pouvez également sponsoriser le travail de Jeff pour l'aider à continuer d'améliorer ces projets Ansible open source !

Informations sur l'auteur

Ce rôle a été créé en 2017 par Jeff Geerling, auteur de Ansible for DevOps. Adapté pour des besoins propres par Stan Bogatkin.

Installer
ansible-galaxy install sorrowless.docker
Licence
mit
Téléchargements
4.6k
Propriétaire
Barocco-style deployment engineer