linux-system-roles.cockpit

Cockpit

ansible-lint.yml ansible-test.yml integration-tests.yml markdownlint.yml tft.yml tft_citest_bad.yml woke.yml

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

Über das Projekt

Install and enable the Cockpit Web Console

Installieren
ansible-galaxy install linux-system-roles.cockpit
Lizenz
gpl-3.0
Downloads
170k