bsmeding.docker
Ansible-Rolle: Docker
Eine Ansible-Rolle, die Docker auf Linux installiert.
Bitte installieren Sie die Version nur, wenn CI BESTANDEN hat!
Die Rolle wird auf Ubuntu, Debian und Rocky (RedHat-ähnlichen) Linux-Distributionen getestet.
Downloads:
Original von geerlingguy.docker Zusätzliches:
- Entfernen von PodMan von RedHat Linux
- Benutzer und Gruppe docker:docker hinzufügen
- Den aktuellen Ansible-Benutzer zur Gruppe docker hinzufügen
docker_uid
unddocker_gui
auf die IDs des Docker-Benutzers und der Gruppe setzen. Dies kann in anderen Ansible-Rollen von mir verwendet werden, die alle Docker verwenden. So wird eine nahtlose Installation ermöglicht.
Anforderungen
Keine.
Rollenvariablen
Verfügbare Variablen sind unten aufgelistet, zusammen mit Standardwerten (siehe defaults/main.yml
):
# 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: Sie müssen dies zu allen Paketen hinzufügen);
Debian/Ubuntu: docker-{{ docker_edition }}=<VERSION>
(Hinweis: Sie müssen dies zu allen Paketen hinzufügen).
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-Daemon automatisch neu gestartet wird, wenn das Docker-Paket aktualisiert wird. Dies ist eine Nebenwirkung des Flushens aller Handler (Ausführen aller Handler, die bis zu diesem Punkt von dieser und anderen Rollen benachrichtigt wurden).
docker_service_manage: true
docker_service_state: started
docker_service_enabled: true
docker_restart_handler_state: restarted
Variablen, um den Status des docker
-Dienstes zu steuern und ob er beim Booten gestartet werden soll. Wenn Sie Docker in einem Docker-Container ohne systemd oder sysvinit installieren, sollten Sie docker_service_manage
auf false
setzen.
docker_install_compose_plugin: false
docker_compose_package: docker-compose-plugin
docker_compose_package_state: present
Installationsoptionen für das Docker Compose Plugin. Diese unterscheiden sich von den unten angegebenen, da docker-compose als Docker-Plugin installiert wird (und mit docker compose
verwendet wird) anstelle eines eigenständigen Binärprogramms.
docker_install_compose: true
docker_compose_version: "1.26.0"
docker_compose_arch: "{{ ansible_architecture }}"
docker_compose_path: /usr/local/bin/docker-compose
Installationsoptionen für Docker Compose.
docker_add_repo: true
Steuert, ob diese Rolle das offizielle Docker-Repository hinzufügen wird. Setzen Sie es auf false
, 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-Repos, die zwischen Debian- und RHEL-Systemen üblich 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 nächtliche 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.
Normalerweise in Kombination mit der Änderung von docker_apt_repository
. docker_apt_filename
steuert den Namen der Quelldatei, die in sources.list.d
erstellt wird. Wenn Sie von einer älteren (<7.0.0) Version dieser Rolle aktualisieren, sollten Sie dies auf den Namen der vorhandenen Datei (z. B. download_docker_com_linux_debian
auf Debian) ändern, 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 entsprechenden 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.
Normalerweise in Kombination mit der Änderung des docker_yum_repository
.
docker_users:
- user1
- user2
Eine Liste von Systembenutzern, die zur Gruppe docker
hinzugefügt werden sollen (damit sie Docker auf dem Server verwenden können). Auch der aktuelle Ansible-Benutzer wird hinzugefügt.
docker_daemon_options:
storage-driver: "devicemapper"
log-opts:
max-size: "100m"
Benutzerdefinierte dockerd
Optionen können durch dieses Dictionary, das die JSON-Datei /etc/docker/daemon.json
darstellt, konfiguriert werden.
Autorinformationen
Diese Rolle wurde 2017 von Jeff Geerling, Autor von Ansible for DevOps, erstellt.
Mit einigen zusätzlichen Einstellungen von mir (Bart Smeding) geändert, um in meine anderen Ansible-Containeranwendungsrollen integriert zu werden.
INFO\
Wenn Sie den Fehler "Error connecting: Error while fetching server API version: Not supported URL scheme http+docker"}
erhalten, aktualisieren Sie die Ansible-Kollektionen:
(oder setzen Sie die Requests-Python-Bibliothek auf < 2.32.0 )
- name: community.general
- name: community.docker
Docker for Linux, Forked from geerlingguy.docker.
ansible-galaxy install bsmeding.docker