linux-system-roles.cockpit
Cockpit
Instaluje i konfiguruje konsolę internetową Cockpit dla dystrybucji, które ją wspierają, takich jak RHEL, CentOS, Fedora, Debian i Ubuntu.
Wymagania
RHEL/CentOS 7.x wymaga włączenia repozytorium Extras.
Wymagania dotyczące kolekcji
Rola wymaga roli firewall
i roli selinux
z kolekcji fedora.linux_system_roles
, jeśli cockpit_manage_firewall
oraz cockpit_manage_selinux
są ustawione na true
. Prosimy również zapoznać się z cockpit_manage_firewall
i cockpit_manage_selinux
w sekcji Zmienne roli
.
Jeśli cockpit
jest rolą z kolekcji fedora.linux_system_roles
lub z pakietu RPM Fedory, wymaganie jest już spełnione.
Jeśli chcesz zarządzać systemami rpm-ostree
za pomocą tej roli, będziesz musiał zainstalować dodatkowe kolekcje. Uruchom następujące polecenie, aby zainstalować kolekcję.
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Zmienne roli
Dostępne zmienne dla poszczególnych dystrybucji są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml
):
cockpit_packages
Główna zmienna to cockpit_packages
, która pozwala określić własny wybór pakietów Cockpit do zainstalowania lub pozwala wybrać jeden z trzech wstępnie zdefiniowanych zestawów pakietów: default, minimal, or full
. Domyślnie wybierany jest default
, jeśli nie zdefiniujesz tej zmiennej. Pakiety instalowane mogą się różnić w zależności od dystrybucji i wersji, ponieważ różne pakiety funkcjonalności Cockpit były dostarczane na przestrzeni czasu. Niektóre mogą nie być dostępne we wszystkich dystrybucjach, takie jak cockpit-docker
, który został wycofany w RHEL na rzecz cockpit-podman
.
Przykład wybranych pakietów Cockpit do instalacji. Zależności powinny wciągnąć minimalne pakiety Cockpit, aby działały.
cockpit_packages:
- cockpit-storaged
- cockpit-podman
Przykład użycia wstępnie zdefiniowanych zestawów pakietów. To jest zalecana metoda instalacji.
cockpit_packages: default
# równoważne z
# - cockpit
# - cockpit-networkmanager
# - cockpit-packagekit
# - cockpit-selinux
# - cockpit-storaged
cockpit_packages: minimal
# równoważne z
# - cockpit-system
# - cockpit-ws
cockpit_packages: full
# równoważne z pobieraniem wszystkich pakietów
# - cockpit-*
# To wciągnie wiele pakietów, takich jak
# - cockpit ## Domyślna lista
# - cockpit-bridge
# - cockpit-networkmanager
# - cockpit-packagekit
# - cockpit-selinux
# - cockpit-storaged
# - cockpit-system
# - cockpit-ws
## i wszystkie pozostałe
# - 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
Zmienna logiczna, aby kontrolować, czy Cockpit ma być uruchamiany automatycznie przy starcie (domyślnie true
).
cockpit_started
cockpit_started: true
Zmienna logiczna, aby kontrolować, czy Cockpit powinien być uruchomiony (domyślnie true
).
cockpit_config
cockpit_config:
WebService:
LoginTitle: "niestandardowy tytuł ekranu logowania"
MaxStartups: 20
Session:
IdleTimeout: 15
Banner: "/etc/motd"
Konfiguruj ustawienia w pliku /etc/cockpit/cockpit.conf. Zobacz man cockpit.conf
dla listy dostępnych ustawień. Wcześniejsze ustawienia zostaną utracone, nawet jeśli nie są określone w zmiennej roli (nie podejmuje się prób zachowania ani scalania poprzednich ustawień, plik konfiguracyjny jest całkowicie zastępowany).
cockpit_port
cockpit_port: 9090
Cockpit działa domyślnie na porcie 9090. Możesz zmienić port za pomocą tej opcji.
cockpit_manage_firewall
cockpit_manage_firewall: false
Zmienna logiczna do zarządzania usługą zapory cockpit
z rolą firewall
. Jeśli zmienna jest ustawiona na false
, rola cockpit
nie zarządza zaporą. Domyślnie false
.
UWAGA: cockpit_manage_firewall
jest ograniczone do dodawania portów. Nie można go używać do usuwania portów. Jeśli chcesz usunąć porty, musisz bezpośrednio użyć roli systemu zapory.
UWAGA: Ta funkcjonalność jest wspierana tylko, gdy os_family
zarządzanego hosta to RedHat
.
cockpit_manage_selinux
cockpit_manage_selinux: false
Flaga logiczna umożliwiająca skonfigurowanie SELinux za pomocą roli selinux
. Domyślna polityka SELinux nie pozwala Cockpitowi słuchać niczego innego, niż port 9090. Jeśli zmienisz port, włącz to, aby użyć roli selinux
, aby ustawić odpowiednie uprawnienia do portu (websm_port_t). Jeśli zmienna jest ustawiona na false
, rola cockpit
nie zarządza uprawnieniami SELinux portu Cockpit.
UWAGA: cockpit_manage_selinux
jest ograniczone do dodawania polityki. Nie można go używać do usuwania polityki. Jeśli chcesz usunąć politykę, musisz bezpośrednio użyć roli systemu SELinux.
UWAGA: Ta funkcjonalność jest wspierana tylko, gdy os_family
zarządzanego hosta to RedHat
.
Zobacz także Przewodnik Cockpit dla szczegółów.
cockpit_transactional_update_reboot_ok
cockpit_transactional_update_reboot_ok: true
Ta zmienna jest używana do obsługi ponownych uruchomień wymaganych przez aktualizacje transakcyjne. Jeśli aktualizacja transakcyjna wymaga ponownego uruchomienia, rola przeprowadzi ponowne uruchomienie, jeśli cockpit_transactional_update_reboot_ok
jest ustawione na true. Jeśli ustawione na false, rola powiadomi użytkownika, że ponowne uruchomienie jest wymagane, co pozwala na dostosowane zarządzanie tym wymaganiem. Jeśli ta zmienna nie jest ustawiona, rola nie zapewni, że wymaganie ponownego uruchomienia nie zostanie przeoczone.
Konfiguracja certyfikatów
Domyślnie Cockpit tworzy samopodpisany certyfikat dla siebie przy pierwszym uruchomieniu. To powinno zostać dostosowane dla środowisk, które używają rzeczywistych certyfikatów.
Użyj istniejącego certyfikatu
Jeśli twój serwer ma już jakiś certyfikat, który chcesz, aby także używał Cockpit, wskaź na opcje ról cockpit_cert
i cockpit_private_key
:
cockpit_cert: /path/to/server.crt
cockpit_private_key: /path/to/server.key
To utworzy symlinki /etc/cockpit/ws-certs.d/50-system-role.{crt,key}
.
Należy zauważyć, że ta funkcjonalność wymaga co najmniej wersji Cockpit 257, czyli RHEL ≥ 8.6 lub ≥ 9.0, lub Fedora ≥ 34.
Wygeneruj nowy certyfikat
Aby wygenerować nowy certyfikat dla Cockpit, zaleca się ustawienie zmiennej cockpit_certificates
. Wartość cockpit_certificates
jest przekazywana do zmiennej certificate_requests
roli certificate
, która jest wywoływana wewnętrznie w roli cockpit
i generuje prywatny klucz i certyfikat. Szczegóły dotyczące wspieranych parametrów cockpit_certificates
znajdują się w sekcji dokumentacji roli certificate_requests
.
Gdy ustalisz cockpit_certificates
, nie musisz ustawiać zmiennych cockpit_private_key
i cockpit_cert
, ponieważ będą ignorowane.
Ten przykład instaluje Cockpit z certyfikatem serwera www wydanym przez IdM, zakładając, że twoje maszyny są dołączone do domeny FreeIPA.
- name: Install cockpit with Cockpit web server certificate
include_role:
name: linux-system-roles.cockpit
vars:
cockpit_certificates:
- name: monger-cockpit
dns: ['localhost', 'www.example.com']
ca: ipa
group: cockpit-ws
Uwaga: Generowanie nowego certyfikatu za pomocą roli systemu certificate
w playbooku pozostaje wspierane.
Ten przykład także instaluje Cockpit z certyfikatem serwera www wydanym przez IdM.
# Ten krok jest konieczny tylko dla wersji Cockpit < 255; szczególnie w RHEL/CentOS 8
- name: Allow certmonger to write into Cockpit's certificate directory
file:
path: /etc/cockpit/ws-certs.d/
state: directory
setype: cert_t
- name: Generate Cockpit web server certificate
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 # lub cockpit-wsinstance w nowszych wersjach cockpit
UWAGA: Rola certificate
, chyba że używa się IPA i dołącza systemy do domeny IPA, tworzy samopodpisane certyfikaty, więc będziesz musiał explicite skonfigurować zaufanie, co nie jest obecnie wspierane przez role systemowe. Aby użyć ca: self-sign
lub ca: local
, w zależności od użycia certmonger, zobacz dokumentację linux-system-roles.certificate dla szczegółów.
UWAGA: Tworzenie samopodpisanego certyfikatu nie jest wspierane w RHEL/CentOS-7.
Przykład Playbooków
Najprostszy przykład.
---
- name: Manage cockpit
hosts: fedora, rhel7, rhel8
become: true
roles:
- linux-system-roles.cockpit
Inny przykład, włączający rolę jako zadanie, aby kontrolować, kiedy wykonywana jest akcja. Zaleca się również skonfigurowanie zapory przy użyciu roli fedora.linux_system_roles.firewall, aby usługa była dostępna.
---
tasks:
- name: Install RHEL/Fedora Web Console (Cockpit)
include_role:
name: linux-system-roles.cockpit
vars:
cockpit_packages: default
#cockpit_packages: minimal
#cockpit_packages: full
- name: Configure Firewall for Web Console
include_role:
name: fedora.linux_system_roles.firewall
vars:
firewall:
service: cockpit
state: enabled
rpm-ostree
Zobacz README-ostree.md
Licencja
GPLv3
Install and enable the Cockpit Web Console
ansible-galaxy install linux-system-roles.cockpit