geerlingguy.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 les valeurs par défaut (voir defaults/main.yml
):
# L'édition peut être 'ce' (Community Edition) ou 'ee' (Enterprise Edition).
docker_edition: 'ce'
docker_packages:
- "docker-{{ docker_edition }}"
- "docker-{{ docker_edition }}-cli"
- "docker-{{ docker_edition }}-rootless-extras"
docker_packages_state: present
Le docker_edition
doit être soit ce
(Community Edition), soit ee
(Enterprise Edition).
Vous pouvez également spécifier une version précise de Docker à installer dans le format spécifique à la distribution :
Red Hat/CentOS : docker-{{ docker_edition }}-<VERSION>
(Remarque : vous devez ajouter cela à tous les paquets);
Debian/Ubuntu : docker-{{ docker_edition }}=<VERSION>
(Remarque : vous devez ajouter cela à tous les paquets).
Vous pouvez contrôler si le paquet est installé, désinstallé ou à la dernière version en définissant docker_packages_state
sur present
, absent
ou latest
, respectivement. Notez que le service Docker sera automatiquement redémarré si le paquet Docker est mis à jour. C'est un effet secondaire du processus qui exécute tous les handlers (en fonction des notifications de ce rôle et d'autres rôles jusqu'à ce moment dans le play).
docker_obsolete_packages:
- docker
- docker.io
- docker-engine
- podman-docker
- containerd
- runc
Une liste de paquets à désinstaller avant d'exécuter ce rôle. Consultez les instructions d'installation de Docker pour une liste à jour des anciens paquets à supprimer.
docker_service_manage: true
docker_service_state: started
docker_service_enabled: true
docker_restart_handler_state: restarted
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 mettre docker_service_manage
à false
.
docker_install_compose_plugin: true
docker_compose_package: docker-compose-plugin
docker_compose_package_state: present
Options d'installation du plugin Docker Compose. Celles-ci diffèrent de ci-dessous en ce que docker-compose est installé en tant que plugin Docker (et utilisé avec docker compose
) plutôt que comme un binaire autonome.
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
Options d'installation de Docker Compose.
docker_add_repo: true
Contrôle si ce rôle ajoutera le dépôt officiel de Docker. Mettez sur false
si vous souhaitez utiliser les paquets Docker par défaut de votre système ou gérer le dépôt de paquets par vous-même.
docker_repo_url: https://download.docker.com/linux
L'URL principale du dépôt Docker, commune entre Debian et les systèmes 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"
(Utilisé uniquement pour Debian/Ubuntu.) Vous pouvez changer le canal en nightly
si vous souhaitez utiliser la version Nightly.
Vous pouvez modifier docker_apt_gpg_key
avec une autre URL si vous êtes derrière un pare-feu ou fournir un miroir fiable.
Cela se fait généralement en combinaison avec le changement de docker_apt_repository
. docker_apt_filename
contrôle le nom du fichier de liste de sources créé dans sources.list.d
. Si vous mettez à niveau un fichier plus ancien (<7.0.0) de ce rôle, vous devrez changer ce nom pour éviter les listes conflictuelles (par exemple, download_docker_com_linux_debian
sur Debian).
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 définissant les variables respectives à 1
.
Vous pouvez également modifier docker_yum_gpg_key
pour une autre URL si vous êtes derrière un pare-feu ou fournir un miroir fiable.
Cela se fait généralement en combinaison avec le changement de docker_yum_repository
.
docker_users:
- user1
- user2
Une liste d'utilisateurs système à ajouter au groupe docker
(afin 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 via ce dictionnaire représentant le fichier json /etc/docker/daemon.json
.
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
Dépendances
Aucune.
Exemple de Playbook
- hosts: all
roles:
- geerlingguy.docker
Licence
MIT / BSD
Sponsors
- We Manage : Aide les start-ups et les entreprises à développer leur infrastructure de manière durable.
Les sponsors ci-dessus soutiennent Jeff Geerling sur GitHub Sponsors. Vous pouvez également soutenir le travail de Jeff pour l'aider à continuer d'améliorer ces projets open source Ansible !
Informations sur l'auteur
Ce rôle a été créé en 2017 par Jeff Geerling, l'auteur de Ansible for DevOps.
ansible-galaxy install geerlingguy.docker