haxorof.docker_ce

Ansible Rolle für Docker CE (Community Edition)

WICHTIG! Auch wenn diese Rolle einige Verteilungs-Versionen nicht unterstützt, kann sie trotzdem funktionieren.

GitHub tag Ansible Role License: MIT Build Status

Diese Ansible-Rolle installiert und konfiguriert Docker CE (Community Edition) auf verschiedenen Linux-Distributionen. Ziel ist es, dass der Benutzer dieser Rolle sich nur darum kümmern muss, wie Docker installiert und konfiguriert werden soll, und die Unterschiede zwischen den verschiedenen Distributionen verborgen bleiben.

ansible-galaxy role install haxorof.docker_ce

Funktionen

  • Eine Methode, um Docker CE auf unterstützten Linux-Distributionen zu installieren und zu konfigurieren.
  • Unterstützung bei der Installation von Docker SDK und Docker Compose.
  • Unterstützung bei der Installation von Docker-Plugins.
  • Unterstützung beim Deinstallieren von Docker CE und zugehörigen Konfigurationen.
  • Anpassungen, um fehlerhafte oder nicht funktionierende Konfigurationen in einigen unterstützten Distributionen zu vermeiden.
  • Vereinfachung der Einrichtung von Docker gemäß den Dokumentationen des Center of Internet Security (CIS).

Unterstützte Distributionen

Hinweis! Einige Versionen der folgenden Distributionen haben nur Python 2.7 installiert und sind nur mit Ansible-Versionen unter 10.0.0 (oder Ansible-Core-Versionen unter 2.17) kompatibel. Dies liegt daran, dass die Unterstützung für Python 2.7 in Ansible 10.0.0 (Ansible-Core 2.17) eingestellt wurde.

  • AlmaLinux1
  • Amazon Linux1
  • CentOS1
  • CentOS Stream
  • Debian
  • Fedora
  • Linux Mint1 (basierend auf Ubuntu)
  • Raspbian (basierend auf Debian)
  • RHEL
  • Rocky Linux1
  • Ubuntu

1 Hinweis: Docker unterstützt diese Distribution nicht offiziell vollständig oder teilweise und einige Funktionen funktionieren möglicherweise nicht.

Es könnten auch andere Distributionen existieren, die mit dieser Rolle funktionieren, jedoch nicht in der obigen Liste stehen, indem der Verteilungscheck deaktiviert wird, indem die Variable docker_do_checks auf no gesetzt wird.

Änderungsprotokoll

Siehe Änderungsprotokoll hier

Ansible-Kompatibilität

  • Ansible 9.0.0 oder neuer (Ansible-Core 2.16 oder neuer)

Für diese Rolle, die mehrere Ansible-Versionen unterstützt, ist es nicht möglich, alle Ansible-Warnungen bezüglich der Abwertung zu vermeiden. Lesen Sie die Ansible-Dokumentation, wenn Sie Abwertungswarnungen deaktivieren möchten.

Diese Rolle versucht, die neueste und die vorherige Hauptversion von Ansible zu unterstützen. Für unterstützte Ansible-Versionen siehe hier.

Anforderungen an Ansible-Sammlungen

Wenn nur Ansible-Core installiert ist, müssen diese Sammlungen ebenfalls installiert sein, damit die Rolle funktioniert:

  • ansible.posix
  • community.general

Anforderungen

Keine zusätzlichen Anforderungen.

Rollen-Variablen

Variablen, die mit dieser Rolle in Verbindung stehen, sind hier aufgelistet.

Abhängigkeiten

Keine.

Beispiel-Playbook

Die folgenden Unterabschnitte zeigen verschiedene Arten von Beispielen, um zu veranschaulichen, was diese Rolle unterstützt.

Einfachstes Beispiel

- hosts: docker
  roles:
    - role: haxorof.docker_ce

Docker-Daemon für die Verwendung eines Proxys konfigurieren

- hosts: docker
  vars:
    docker_daemon_envs:
      HTTP_PROXY: http://localhost:3128/
      NO_PROXY: localhost,127.0.0.1,docker-registry.somecorporation.com
  roles:
    - haxorof.docker_ce

Sicherstellen, dass Ansible Docker-Module nach der Installation verwenden kann

- hosts: test-host
  vars:
    docker_sdk: true
    docker_compose: true
  roles:
    - haxorof.docker_ce
  post_tasks:
    - name: Test hello Container
      become: yes
      docker_container:
        name: hello
        image: hello-world

    - name: Test hello Service
      become: yes
      docker_service:
        project_name: hello
        definition:
          version: '3'
          services:
            hello:
              image: "hello-world"

Auf dem Weg zur CIS-konformen Docker-Engine-Installation

Das minimale Beispiel unten zeigt, welche Art von Rolleneinstellungen erforderlich sind, um die Docker-Bench-Überprüfungen zu bestehen:

- hosts: docker
  vars:
    docker_plugins:
      - type: authz
        alias: opa-docker-authz
        name: openpolicyagent/opa-docker-authz-v2:0.9
        args: opa-args="-policy-file /opa/policies/authz.rego"
    docker_enable_audit: yes
    docker_daemon_config:
      icc: false
      log-driver: journald
      userns-remap: default
      live-restore: true
      userland-proxy: false
      no-new-privileges: true
  roles:
    - haxorof.docker_ce

Da die obige Konfiguration benutzerdefinierte Linux-Namensräume aktiviert haben muss, könnten zusätzliche GRUB-Argumente benötigt werden. Das folgende Beispiel zeigt, welche Änderungen möglicherweise erforderlich sind, und ein Neustart des Hosts ist erforderlich, damit die Änderungen vollständig wirksam werden.

# https://success.docker.com/article/user-namespace-runtime-error

- hosts: docker
  roles:
    - role: jtyr.grub_cmdline
      vars:
        grub_cmdline_add_args:
          - namespace.unpriv_enable=1
          - user_namespace.enable=1
      become: yes
  tasks:
    - name: set user.max_user_namespaces
      sysctl:
        name: user.max_user_namespaces
        value: 15000
        sysctl_set: yes
        state: present
        reload: yes
      become: yes

Für ein vollständigeres funktionierendes Beispiel auf CentOS 7 siehe hier.

Automatisierte Testmatrix

Hier sind die neuesten Testergebnisse der automatisierten Tests, die im Tests-Verzeichnis durchgeführt werden:

Hinweis! Alle Distributionen, die in der Testmatrix unten aufgeführt sind, haben nicht die neueste veröffentlichte Docker CE-Version bereitgestellt.

Test-Suiten

Suite ID Kommentar
s-1 t_config
s-2 t_postinstall
s-3 t_auditd

Testmatrix

Symbol Definition
:heavy_check_mark: Alle Tests bestanden
:x: Mindestens ein Test fehlgeschlagen / Nicht unterstützt
:heavy_minus_sign: Kein Test durchgeführt / Noch nicht getestet
# s-1 s-2 s-3 aktualisiert
AlmaLinux 8 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
AlmaLinux 9 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Amazon Linux 2 :heavy_check_mark: :x: :heavy_check_mark: 2024-08-02
Amazon Linux 2023 :heavy_check_mark: :x: :heavy_check_mark: 2024-08-02
CentOS Stream 9 :heavy_minus_sign: :heavy_minus_sign: :heavy_minus_sign: 2024-08-02
Debian 11 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Debian 12 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Fedora 39 :heavy_minus_sign: :heavy_minus_sign: :heavy_minus_sign: 2024-08-02
Fedora 40 :heavy_minus_sign: :heavy_minus_sign: :heavy_minus_sign: 2024-08-02
Rocky Linux 8 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Rocky Linux 9 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Ubuntu 20.04 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Ubuntu 22.04 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-02
Ubuntu 24.04 :heavy_minus_sign: :heavy_minus_sign: :heavy_minus_sign: 2024-08-02
RHEL 8 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-12
RHEL 9 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 2024-08-12

Lizenz

Dies ist ein Open-Source-Projekt unter der MIT Lizenz.

Über das Projekt

Installs and configures Docker Community Edition (CE) on AlmaLinux/Rocky/CentOS/Fedora/RHEL/Ubuntu/Debian/Mint/Raspbian

Installieren
ansible-galaxy install haxorof.docker_ce
Lizenz
mit
Downloads
285.2k