geerlingguy.docker

Ansible Rolle: Docker

CI

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.

Installieren
ansible-galaxy install geerlingguy.docker
Lizenz
mit
Downloads
22.2M
Besitzer
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns