linux-system-roles.cockpit
Cockpit
Installiert und konfiguriert die Cockpit Web-Konsole für Distributionen, die dies unterstützen, wie RHEL, CentOS, Fedora, Debian und Ubuntu.
Anforderungen
RHEL/CentOS 7.x benötigen das aktivierte Extras-Repository.
Sammlungsanforderungen
Die Rolle benötigt die Rolle firewall
und die Rolle selinux
aus der Sammlung fedora.linux_system_roles
, wenn cockpit_manage_firewall
und cockpit_manage_selinux
jeweils auf true
gesetzt sind. Weitere Informationen finden Sie unter cockpit_manage_firewall
und cockpit_manage_selinux
in Role Variables
.
Wenn cockpit
eine Rolle aus der Sammlung fedora.linux_system_roles
oder aus dem Fedora RPM-Paket ist, ist die Anforderung bereits erfüllt.
Wenn Sie rpm-ostree
-Systeme mit dieser Rolle verwalten möchten, müssen Sie zusätzliche Sammlungen installieren. Bitte führen Sie die folgende Befehlszeile aus, um die Sammlung zu installieren.
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Rollenvariablen
Verfügbare Variablen pro Distribution sind unten aufgeführt, zusammen mit den Standardwerten (siehe defaults/main.yml
):
cockpit_packages
Die Hauptvariable ist cockpit_packages
, mit der Sie Ihre eigene Auswahl an Cockpit-Paketen angeben können, die Sie installieren möchten, oder eine der drei vordefinierten Paketsets wählen können: default, minimal oder full
. Offensichtlich wird default
ausgewählt, wenn Sie diese Variable nicht definieren. Beachten Sie, dass die installierten Pakete je nach Distribution und Version variieren können, da im Laufe der Zeit unterschiedliche Pakete für Cockpit-Funktionalität angeboten wurden. Einige sind möglicherweise auch nicht auf allen Distributionen verfügbar, wie cockpit-docker
, das in RHEL zugunsten von cockpit-podman
abgelehnt wurde.
Beispiel für explizite Cockpit-Pakete zur Installation. Abhängigkeiten sollten die minimalen Cockpit-Pakete einbeziehen, damit sie funktionieren.
cockpit_packages:
- cockpit-storaged
- cockpit-podman
Beispiel für die Verwendung der vordefinierten Paketsets. Dies ist die empfohlene Installationsmethode.
cockpit_packages: default
# entspricht
# - cockpit
# - cockpit-networkmanager
# - cockpit-packagekit
# - cockpit-selinux
# - cockpit-storaged
cockpit_packages: minimal
# entspricht
# - cockpit-system
# - cockpit-ws
cockpit_packages: full
# entspricht dem Einbeziehen aller
# - cockpit-*
# Dies wird viele Pakete einbeziehen, wie
# - cockpit ## Standardliste
# - cockpit-bridge
# - cockpit-networkmanager
# - cockpit-packagekit
# - cockpit-selinux
# - cockpit-storaged
# - cockpit-system
# - cockpit-ws
## und alle anderen
# - cockpit-389-ds
# - cockpit-composer
# - cockpit-dashboard
# - cockpit-doc
# - cockpit-kdump
# - cockpit-machines
# - cockpit-pcp
# - cockpit-podman
# - cockpit-session-recording
# - cockpit-sosreport
cockpit_enabled
cockpit_enabled: true
Boolesche Variable zur Steuerung, ob Cockpit beim Booten automatisch gestartet wird (Standard true
).
cockpit_started
cockpit_started: true
Boolesche Variable zur Steuerung, ob Cockpit gestartet/ausgeführt werden soll (Standard true
).
cockpit_config
cockpit_config: #Konfiguration in /etc/cockpit/cockpit.conf
WebService: #Konfiguration "WebService" spezifizieren
LoginTitle: "benutzerdefinierter Titel des Anmeldebildschirms" #Setzen von "LoginTitle" im Abschnitt "WebService"
MaxStartups: 20 #Setzen von "MaxStartups" im Abschnitt "WebService"
Session: #Konfiguration "Session" spezifizieren
IdleTimeout: 15 #Setzen von "IdleTimeout" im Abschnitt "Session"
Banner: "/etc/motd" #Setzen von "Banner" im Abschnitt "Session"
Konfigurieren Sie die Einstellungen in der Datei /etc/cockpit/cockpit.conf. Siehe man cockpit.conf
für eine Liste der verfügbaren Einstellungen. Früher festgelegte Einstellungen gehen verloren, auch wenn sie nicht in der Rollenvariable angegeben sind (es wird kein Versuch unternommen, die vorherigen Einstellungen zu speichern oder zusammenzuführen, die Konfigurationsdatei wird vollständig ersetzt).
cockpit_port
cockpit_port: 9090
Cockpit läuft standardmäßig auf Port 9090. Sie können den Port mit dieser Option ändern.
cockpit_manage_firewall
cockpit_manage_firewall: false
Boolesche Variable zur Steuerung des Firewall-Dienstes von cockpit
mit der Rolle firewall
. Wenn die Variable auf false
gesetzt ist, verwaltet die Rolle cockpit
die Firewall nicht. Standard ist false
.
HINWEIS: cockpit_manage_firewall
ist auf das Hinzufügen von Ports beschränkt. Es kann nicht zum Entfernen von Ports verwendet werden. Wenn Sie Ports entfernen möchten, müssen Sie die Firewall-Systemrolle direkt verwenden.
HINWEIS: Diese Funktionalität wird nur unterstützt, wenn die os_family
des verwalteten Hosts RedHat
ist.
cockpit_manage_selinux
cockpit_manage_selinux: false
Boolesches Flag, das die Konfiguration von SELinux mit der SELinux-Rolle ermöglicht. Die Standard-SELinux-Richtlinie erlaubt es Cockpit nicht, auf etwas anderes als Port 9090 zu lauschen. Wenn Sie den Port ändern, aktivieren Sie dies, um die SELinux-Rolle zu verwenden, um die richtigen Portberechtigungen (websm_port_t) festzulegen. Wenn die Variable auf false
gesetzt ist, verwaltet die Rolle cockpit
die SELinux-Berechtigungen des Cockpit-Ports nicht.
HINWEIS: cockpit_manage_selinux
ist auf das Hinzufügen von Richtlinien beschränkt. Es kann nicht zum Entfernen von Richtlinien verwendet werden. Wenn Sie Richtlinien entfernen möchten, müssen Sie die SELinux-Systemrolle direkt verwenden.
HINWEIS: Diese Funktionalität wird nur unterstützt, wenn die os_family
des verwalteten Hosts RedHat
ist.
Siehe auch den Cockpit-Leitfaden für Details.
cockpit_transactional_update_reboot_ok
cockpit_transactional_update_reboot_ok: true
Diese Variable wird verwendet, um Neustarts zu handhaben, die durch transaktionale Updates erforderlich sind. Wenn ein transaktionales Update einen Neustart erfordert, fährt die Rolle mit dem Neustart fort, wenn cockpit_transactional_update_reboot_ok
auf true gesetzt ist. Wenn auf false gesetzt, wird der Benutzer informiert, dass ein Neustart erforderlich ist, um eine benutzerdefinierte Handhabung der Neustartanforderung zu ermöglichen. Wenn diese Variable nicht gesetzt ist, schlägt die Rolle fehl, um sicherzustellen, dass die Neustartanforderung nicht übersehen wird.
Zertifikatseinrichtung
Standardmäßig erstellt Cockpit beim ersten Start ein selbstsigniertes Zertifikat. Dies sollte anpassbar für Umgebungen sein, die echte Zertifikate verwenden.
Verwendung eines vorhandenen Zertifikats
Wenn Ihr Server bereits ein Zertifikat hat, das Sie auch für Cockpit verwenden möchten, weisen Sie die Optionen cockpit_cert
und cockpit_private_key
darauf hin:
cockpit_cert: /path/to/server.crt
cockpit_private_key: /path/to/server.key
Dies erstellt Symlinks in /etc/cockpit/ws-certs.d/50-system-role.{crt,key}
.
Bitte beachten Sie, dass diese Funktionalität mindestens Cockpit-Version 257 erfordert, d.h. RHEL ≥ 8.6 oder ≥ 9.0 oder Fedora ≥ 34.
Neues Zertifikat generieren
Zur Erstellung eines neuen Zertifikats für Cockpit wird empfohlen, die Variable cockpit_certificates
festzulegen. Der Wert von cockpit_certificates
wird an die Variable certificate_requests
der intern aufgerufenen certificate
-Rolle übergeben und generiert den privaten Schlüssel und das Zertifikat. Für die unterstützten Parameter von cockpit_certificates
siehe die certificate_requests
-Rollen-Dokumentation.
Wenn Sie cockpit_certificates
festlegen, dürfen Sie die Variablen cockpit_private_key
und cockpit_cert
nicht festlegen, da sie ignoriert werden.
Dieses Beispiel installiert Cockpit mit einem von IdM ausgestellten Webserver-Zertifikat, wobei vorausgesetzt wird, dass Ihre Maschinen einer FreeIPA-Domäne beigetreten sind.
- name: Installiere Cockpit mit Cockpit-Webserver-Zertifikat
include_role:
name: linux-system-roles.cockpit
vars:
cockpit_certificates:
- name: monger-cockpit
dns: ['localhost', 'www.example.com']
ca: ipa
group: cockpit-ws
Hinweis: Die Erstellung eines neuen Zertifikats mit der Systemrolle certificate
im Playbook bleibt unterstützt.
Dieses Beispiel installiert auch Cockpit mit einem von IdM ausgestellten Webserver-Zertifikat.
# Dieser Schritt ist nur notwendig für Cockpit-Version < 255; insbesondere für RHEL/CentOS 8
- name: Erlaube certmonger, in das Zertifikatsverzeichnis von Cockpit zu schreiben
file:
path: /etc/cockpit/ws-certs.d/
state: directory
setype: cert_t
- name: Generiere Cockpit-Webserver-Zertifikat
include_role:
name: fedora.linux_system_roles.certificate
vars:
certificate_requests:
- name: /etc/cockpit/ws-certs.d/monger-cockpit
dns: ['localhost', 'www.example.com']
ca: ipa
group: cockpit-ws # oder cockpit-wsinstance in neueren Cockpit-Versionen
HINWEIS: Die Rolle certificate
erstellt, es sei denn, Sie verwenden IPA und fügen die Systeme einer IPA-Domäne hinzu, selbstsignierte Zertifikate, sodass Sie ausdrücklich das Vertrauen konfigurieren müssen, was derzeit von den Systemrollen nicht unterstützt wird. Um ca: self-sign
oder ca: local
je nach Ihrer Nutzung von certmonger zu verwenden, siehe die Dokumentation zu linux-system-roles.certificate für Details.
HINWEIS: Die Erstellung eines selbstsignierten Zertifikats wird in RHEL/CentOS-7 nicht unterstützt.
Beispiel-Playbooks
Das einfachste Beispiel.
---
- name: Verwaltete Cockpit
hosts: fedora, rhel7, rhel8
become: true
roles:
- linux-system-roles.cockpit
Ein weiteres Beispiel, das die Rolle als Aufgabe einfügt, um zu steuern, wann die Aktion ausgeführt wird. Es wird auch empfohlen, die Firewall mit der Rolle fedora.linux_system_roles.firewall
zu konfigurieren, um den Dienst zugänglich zu machen.
---
tasks:
- name: Installiere RHEL/Fedora Web-Konsole (Cockpit)
include_role:
name: linux-system-roles.cockpit
vars:
cockpit_packages: default
#cockpit_packages: minimal
#cockpit_packages: full
- name: Firewall für Web-Konsole konfigurieren
include_role:
name: fedora.linux_system_roles.firewall
vars:
firewall:
service: cockpit
state: enabled
rpm-ostree
Siehe README-ostree.md
Lizenz
GPLv3