bsmeding.docker

Ansible-Rolle: Docker

Eine Ansible-Rolle, die Docker auf Linux installiert.

Bitte installieren Sie die Version nur, wenn CI BESTANDEN hat!

Teststatus Die Rolle wird auf Ubuntu, Debian und Rocky (RedHat-ähnlichen) Linux-Distributionen getestet.

Downloads: Ansible-Rolle

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 und docker_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
Über das Projekt

Docker for Linux, Forked from geerlingguy.docker.

Installieren
ansible-galaxy install bsmeding.docker
Lizenz
mit
Downloads
7.1k
Besitzer
Network Automation Consultant | NetDevOps | DevNetOps | AI in networking | Home Automation