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.
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-Core2.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.
Installs and configures Docker Community Edition (CE) on AlmaLinux/Rocky/CentOS/Fedora/RHEL/Ubuntu/Debian/Mint/Raspbian
ansible-galaxy install haxorof.docker_ce