notmycloud.podman_systemd
Ansible Podman_systemd
Beschreibung
Konfigurieren Sie Podman-Systemd-Einheiten für System- und rootlose Benutzer.
Installation
Die folgenden Rollen sind ebenfalls erforderlich. Wenn ich sie als Abhängigkeit hinzufüge, werden sie ausgeführt, was fehlschlägt.
- linuxhq.sysctl
- notmycloud.yaml2ini
- notmycloud.systemd_unit
WICHTIG: Erfordert die Installation des Python-Pakets toml
. Installieren Sie es mit pip.
Verwendung
Geben Sie die folgenden Variablen an, damit diese Rolle korrekt funktioniert.
PODMAN_SYSTEMD_INSTALL_COCKPIT
installiert Cockpit mit Podman-Unterstützung.
PODMAN_SYSTEMD_ALLOW_LOWEST_PORT
gibt den niedrigsten Port an, den ein nicht privilegierter Benutzer binden kann. Es wird diskutiert, dass die niedrigen Ports von 1024 oder weniger "sicher" sind und auf vertrauenswürdige Benutzer beschränkt werden sollten. Wenn dies ein Multi-Tenant-Server ist, wird empfohlen, diese Variable zu überspringen. Wenn Sie jedoch diesen Server vollständig verwalten und Benutzer pro Dienst einrichten, kann Ihnen diese Option einige Kopfschmerzen ersparen. Meiner Meinung nach kann dies auf 0 für einen Server eingestellt werden, der nicht multi-tenant ist.
PODMAN_SYSTEMD_ALLOW_PING
erlaubt es nicht privilegierten Benutzern, Pings zu senden.
PODMAN_SYSTEMD_DEPLOY
enthält den Großteil der Podman-Konfiguration. Erstellen Sie einen Schlüssel für jeden Benutzer, der eine Systemd-Einheit erhalten soll.
PODMAN_SYSTEMD_DEPLOY:
root:
usw...
benutzer1:
usw...
benutzer2:
usw...
Benutzerkonfiguration
Root wird im Standardverzeichnis /etc/systemd/system
konfiguriert, während Benutzer im Verzeichnis ~/.config/system/user
konfiguriert werden. In diesem Beispiel werden wir für einen nicht privilegierten Benutzer konfigurieren.
debug_log: bool # auf true setzen, um Aufgaben- und Debug-Protokollierung zu aktivieren
PODMAN_SYSTEMD_DEPLOY:
meinbenutzer:
konfiguration:
speicher:
speicher:
treiber: "overlay"
# Schlüssel:Wert-Paare, die im INI-Format für storage.conf geschrieben werden. Dies wird im entsprechenden Verzeichnis für entweder einen Benutzer oder, wenn der Benutzer root ist, im /etc-Konfigurationsverzeichnis abgelegt.
# Die Schlüssel:Wert-Paare sollten dem Format entsprechen, das durch die Rolle notmycloud.yaml2ini vorgegeben ist.
container:
motor:
netzwerk_cmd_optionen:
- "allow_host_loopback=true"
- "enable_ipv6=true"
umgebung:
- "TMPDIR=$HOME/.cache/tmp/"
# Schlüssel:Wert-Paare, die im TOML-Format für containers.conf geschrieben werden. Dies wird im entsprechenden Verzeichnis für entweder einen Benutzer oder, wenn der Benutzer root ist, im /etc-Konfigurationsverzeichnis abgelegt.
registrierungen:
unqualifizierte-suchregistrierungen:
- "docker.io"
# - "quay.io"
# - "registry.access.redhat.com"
registrierung:
# - prefix: "docker.io"
# standort: "127.0.0.1:5000"
# unsicher: true
# Im November 2020 beschränkt Docker das Herunterladen von Bildern. Um zu vermeiden, dass diese
# Grenzen während des Testens überschritten werden, verwenden Sie immer den Google-Spiegel für qualifizierte und
# unqualifizierte `docker.io`-Bilder.
# Hinweis: https://cloud.google.com/container-registry/docs/pulling-cached-images
registrierung.spiegel:
- standort: "https://mirror.gcr.io"
# Schlüssel:Wert-Paare, die im TOML-Format für registries.conf geschrieben werden. Dies wird im entsprechenden Verzeichnis für entweder einen Benutzer oder, wenn der Benutzer root ist, im /etc-Konfigurationsverzeichnis abgelegt.
einloggen: # Siehe Dokumentation für das Modul containers.podman.podman_login
- registrierung: registry.meinedomain.com
benutzername: registrierungsbenutzer
passwort: super$3(r37Passwort
systemd:
aktiviere_socket: # Standard False, aktiviert den Podman API-Socket für den Benutzer oder, wenn unter root, systemweit.
container:
CONTAINERNAME: # Ersetzen Sie dies durch den Namen, den Sie für den Container wünschen. Dies wird auch für die Systemd-Einheitsdatei verwendet.
podman_optionen:
bild:
netzwerk: # Netzwerkzeichenkette, standardmäßig slirp4netns:allow_host_loopback=true,enable_ipv6=true
ersetzen: # bool
neustarten: # "immer"|"nein"|"bei-fehler"|"es sei denn, es wurde gestoppt" standardmäßig nein
entfernen: # Standardmäßig ja
stop_timeout: # Standardmäßig 60 Sekunden
protokoll_treiber: # Standardmäßig Durchleitung, damit Sie Ihre Protokolle im Journal anzeigen können
gesundheitsprüfung:
cmd:
intervall:
wiederholungen:
verzögerung:
zeitüberschreitung:
umgebung: # Array von Schlüssel-Wert-Paaren
schlüssel: "wert"
ports: # 0.0.0.0:hostport:containerport
volumes:
- host:
container:
optionen:
typ: # datei/verzeichnis
etiketten: # Array von Schlüssel-Wert-Paaren
schlüssel: "wert"
andere_optionen: # Zeichenfolge oder Array anderer Optionen, die an podman run übergeben werden
dienst_optionen: # Siehe notmycloud.systemd_unit Variable, Tiefe gleich UNIT_NAME
pods:
PODNAME: # Ersetzen Sie dies durch den Namen, den Sie für den Pod wünschen. Dies wird auch verwendet, um die zugehörigen Container zu kennzeichnen.
pod_dienst_optionen: # Siehe notmycloud.systemd_unit Variable, Tiefe gleich UNIT_NAME
CONTAINERNAME:
# Folgen Sie der obigen PODMAN_SYSTEMD_DEPLOY.BENUTZERNAME.systemd.container.CONTAINERNAME-Syntax
Weitere Hinweise
Podman Socket
Der Root-Socket wird aktiviert unter: /run/podman/podman.sock
Der rootlose Socket wird aktiviert unter: /run/user/$UID/podman/podman.sock
Container-Konfigurationsverzeichnis
Ich empfehle, %E/%N/
als Ihr Konfigurationsverzeichnis zu verwenden.
Dies wird die Konfiguration entweder in ~/.config/{service_name}/
oder /etc/{service_name}/
speichern.
Für Container, die mehrere Konfigurationsverzeichnisse benötigen, verwende ich %E/%N/config1/
, %E/%N/config2/
usw.
Empfohlene andere Optionen
--init
Führen Sie eine Init innerhalb des Containers aus, die Signale weiterleitet und Prozesse verwaltet. Siehe containers/podman#1670 für weitere Informationen--cap-drop=all
Entfernen Sie alle Berechtigungen. Sie müssen wahrscheinlich Berechtigungen hinzufügen, damit Ihr Container richtig funktioniert.--security-opt=no-new-privileges
Verhindern, dass Containerprozesse zusätzliche Berechtigungen erhalten. Weitere Informationen finden Sie in den Dokumentationen.--userns=keep-id
Ordnet den Containerbenutzer der Benutzer-ID des Hosts zu.
Unterstützung
Für Unterstützung bitten wir Sie, ein Problem zu melden und die folgenden Punkte bereitzustellen:
- Beispielaufgabe/Playbook, um Ihr Problem zu reproduzieren
- Ergebnisdatei, die erstellt wird.
ansible-galaxy install notmycloud.podman_systemd