geerlingguy.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 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.

Installer
ansible-galaxy install geerlingguy.docker
Licence
mit
Téléchargements
22.2M
Propriétaire
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns