sorrowless.docker
Rôle Ansible : Docker
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.
ansible-galaxy install sorrowless.docker