geerlingguy.docker
Ansible Rolle: Docker
Eine Ansible-Rolle, die Docker auf Linux installiert.
Anforderungen
Keine.
Rollenvariablen
Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml
):
# Die Edition kann entweder 'ce' (Community Edition) oder 'ee' (Enterprise Edition) sein.
docker_edition: 'ce'
docker_packages:
- "docker-{{ docker_edition }}"
- "docker-{{ docker_edition }}-cli"
- "docker-{{ docker_edition }}-rootless-extras"
docker_packages_state: present
Die docker_edition
sollte entweder ce
(Community Edition) oder ee
(Enterprise Edition) sein.
Sie können auch eine spezifische Version von Docker installieren, indem Sie das distributionsspezifische Format verwenden:
Red Hat/CentOS: docker-{{ docker_edition }}-<VERSION>
(Hinweis: dies muss zu allen Paketen hinzugefügt werden);
Debian/Ubuntu: docker-{{ docker_edition }}=<VERSION>
(Hinweis: dies muss zu allen Paketen hinzugefügt werden).
Sie können steuern, ob das Paket installiert, deinstalliert oder auf die neueste Version aktualisiert wird, indem Sie docker_packages_state
auf present
, absent
oder latest
setzen. Beachten Sie, dass der Docker-Dämon automatisch neu gestartet wird, wenn das Docker-Paket aktualisiert wird. Dies ist eine Nebenwirkung des Ausführens aller Handler, die durch diese und andere Rollen bis zu diesem Punkt in dem Play benachrichtigt wurden.
docker_obsolete_packages:
- docker
- docker.io
- docker-engine
- podman-docker
- containerd
- runc
Eine Liste von Paketen, die vor dem Ausführen dieser Rolle deinstalliert werden sollen. Siehe Docker Installationsanleitungen für eine aktuelle Liste von alten Paketen, die entfernt werden sollten.
docker_service_manage: true
docker_service_state: started
docker_service_enabled: true
docker_restart_handler_state: restarted
Variablen zur Steuerung des Status des docker
-Dienstes und ob er beim Booten starten soll. Wenn Sie Docker innerhalb eines Docker-Containers ohne systemd oder sysvinit installieren, sollten Sie docker_service_manage
auf false
setzen.
docker_install_compose_plugin: true
docker_compose_package: docker-compose-plugin
docker_compose_package_state: present
Optionen zur Installation des Docker Compose-Plugins. Diese unterscheiden sich von den nachstehenden, da docker-compose als Docker-Plugin installiert wird (und mit docker compose
verwendet wird) anstatt als eigenständige Binärdatei.
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
Optionen zur Installation von Docker Compose.
docker_add_repo: true
Steuert, ob diese Rolle das offizielle Docker-Repository hinzufügen wird. Auf false
setzen, wenn Sie die Standard-Docker-Pakete für Ihr System verwenden oder das Paket-Repository selbst verwalten möchten.
docker_repo_url: https://download.docker.com/linux
Die Haupt-URL des Docker-Repo, die für Debian- und RHEL-Systeme gemeinsam ist.
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"
(Wird nur für Debian/Ubuntu verwendet.) Sie können den Kanal auf nightly
umschalten, wenn Sie die Nightly-Version verwenden möchten.
Sie können docker_apt_gpg_key
auf eine andere URL ändern, wenn Sie hinter einer Firewall sind oder einen vertrauenswürdigen Mirror bereitstellen.
In der Regel in Kombination mit der Änderung von docker_apt_repository
. docker_apt_filename
steuert den Namen der Quelllisten-Datei, die in sources.list.d
erstellt wird. Wenn Sie von einer älteren (<7.0.0) Version dieser Rolle upgraden, sollten Sie dies auf den Namen der vorhandenen Datei ändern (z. B. download_docker_com_linux_debian
auf Debian), um Konflikte zu vermeiden.
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"
(Wird nur für RedHat/CentOS verwendet.) Sie können das Nightly- oder Test-Repo aktivieren, indem Sie die jeweiligen Variablen auf 1
setzen.
Sie können docker_yum_gpg_key
auf eine andere URL ändern, wenn Sie hinter einer Firewall sind oder einen vertrauenswürdigen Mirror bereitstellen.
In der Regel in Kombination mit der Änderung von docker_yum_repository
.
docker_users:
- user1
- user2
Eine Liste von Systembenutzern, die der docker
-Gruppe hinzugefügt werden sollen (damit sie Docker auf dem Server verwenden können).
docker_daemon_options:
storage-driver: "devicemapper"
log-opts:
max-size: "100m"
Benutzerdefinierte dockerd
-Optionen können über dieses Wörterbuch konfiguriert werden, das die json-Datei /etc/docker/daemon.json
repräsentiert.
Verwendung mit Ansible (und docker
Python-Bibliothek)
Viele Benutzer dieser Rolle möchten auch Ansible verwenden, um Docker-Images zu erstellen und Docker-Container auf dem Server, auf dem Docker installiert ist, zu verwalten. In diesem Fall können Sie die docker
Python-Bibliothek einfach mit der Rolle geerlingguy.pip
hinzufügen:
- hosts: all
vars:
pip_install_packages:
- name: docker
roles:
- geerlingguy.pip
- geerlingguy.docker
Abhängigkeiten
Keine.
Beispiel-Playbook
- hosts: all
roles:
- geerlingguy.docker
Lizenz
MIT / BSD
Sponsoren
- We Manage: Hilft Start-ups und gewachsenen Unternehmen, ihre Infrastruktur nachhaltig zu skalieren.
Die oben genannten Sponsoren unterstützen Jeff Geerling auf GitHub Sponsoren. Sie können auch Jeffs Arbeit unterstützen, um ihm zu helfen, diese Ansible-Open-Source-Projekte weiter zu verbessern!
Autoreninformationen
Diese Rolle wurde 2017 von Jeff Geerling erstellt, Autor von Ansible for DevOps.
ansible-galaxy install geerlingguy.docker