linux-system-roles.cockpit
Cockpit
Installe et configure la console web Cockpit pour les distributions qui le supportent, telles que RHEL, CentOS, Fedora, Debian et Ubuntu.
Exigences
RHEL/CentOS 7.x nécessite que le dépôt Extras soit activé.
Exigences de la collection
Le rôle nécessite le rôle firewall
et le rôle selinux
de la collection fedora.linux_system_roles
, si cockpit_manage_firewall
et cockpit_manage_selinux
sont définis sur true
, respectivement. Veuillez consulter aussi cockpit_manage_firewall
et cockpit_manage_selinux
dans Variables de Rôle
.
Si cockpit
est un rôle de la collection fedora.linux_system_roles
ou du package RPM Fedora, la exigence est déjà satisfaite.
Si vous souhaitez gérer des systèmes rpm-ostree
avec ce rôle, vous devrez installer des collections supplémentaires. Veuillez exécuter la commande suivante pour installer la collection.
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Variables de Rôle
Les variables disponibles par distribution sont listées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml
):
cockpit_packages
La variable principale est cockpit_packages
, qui vous permet de spécifier votre propre sélection de packages cockpit que vous souhaitez installer, ou de choisir l'un des trois ensembles de packages prédéfinis : default, minimal, ou full
. Évidemment, default
est sélectionné si vous ne définissez pas cette variable. Notez que les packages installés peuvent varier en fonction de la distribution et de la version, car différentes fonctionnalités de Cockpit ont été fournies au fil du temps. Certains peuvent ne pas être disponibles sur toutes les distributions, comme cockpit-docker
, qui a été remplacé sur RHEL en faveur de cockpit-podman
.
Exemple de packages cockpit explicites à installer. Les dépendances devraient tirer les packages cockpit minimaux afin qu'ils fonctionnent.
cockpit_packages:
- cockpit-storaged
- cockpit-podman
Exemple d'utilisation des ensembles de packages prédéfinis. C'est la méthode recommandée pour l'installation.
cockpit_packages: default
# équivalent à
# - cockpit
# - cockpit-networkmanager
# - cockpit-packagekit
# - cockpit-selinux
# - cockpit-storaged
cockpit_packages: minimal
# équivalent à
# - cockpit-system
# - cockpit-ws
cockpit_packages: full
# équivalent à tous les packages
# - cockpit-*
# Cela tirera de nombreux packages tels que
# - cockpit ## Liste par défaut
# - cockpit-bridge
# - cockpit-networkmanager
# - cockpit-packagekit
# - cockpit-selinux
# - cockpit-storaged
# - cockpit-system
# - cockpit-ws
## et tous les autres
# - 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
Variable booléenne pour contrôler si Cockpit est activé pour démarrer automatiquement au démarrage (par défaut true
).
cockpit_started
cockpit_started: true
Variable booléenne pour contrôler si Cockpit doit être démarré/en cours d'exécution (par défaut true
).
cockpit_config
cockpit_config: #Configurer /etc/cockpit/cockpit.conf
WebService: #Spécifier la section de configuration "WebService"
LoginTitle: "titre de page de connexion personnalisé" #Définir "LoginTitle" dans la section "WebService"
MaxStartups: 20 #Définir "MaxStartups" dans la section "WebService"
Session: #Spécifier la section de configuration "Session"
IdleTimeout: 15 #Définir "IdleTimeout" dans la section "Session"
Banner: "/etc/motd" #Définir "Banner" dans la section "Session"
Configurer les paramètres dans le fichier /etc/cockpit/cockpit.conf. Voir man cockpit.conf
pour une liste des paramètres disponibles. Les paramètres précédents seront perdus, même s'ils ne sont pas spécifiés dans la variable de rôle (aucune tentative n'est faite pour préserver ou fusionner les paramètres précédents, le fichier de configuration est entièrement remplacé).
cockpit_port
cockpit_port: 9090
Cockpit fonctionne par défaut sur le port 9090. Vous pouvez changer le port avec cette option.
cockpit_manage_firewall
cockpit_manage_firewall: false
Variable booléenne pour contrôler le service de pare-feu cockpit
avec le rôle firewall
. Si la variable est définie sur false
, le rôle cockpit
ne gère pas le pare-feu. Par défaut à false
.
REMARQUE : cockpit_manage_firewall
est limité à ajouter des ports. Il ne peut pas être utilisé pour supprimer des ports. Si vous souhaitez supprimer des ports, vous devrez utiliser le rôle système de pare-feu directement.
REMARQUE : Cette fonctionnalité n'est prise en charge que lorsque le os_family
de l'hôte géré est RedHat
.
cockpit_manage_selinux
cockpit_manage_selinux: false
Drapeau booléen permettant de configurer selinux en utilisant le rôle selinux. La politique SELinux par défaut ne permet pas à Cockpit d'écouter quoi que ce soit d'autre que le port 9090. Si vous changez le port, activez ceci pour utiliser le rôle selinux afin de définir les bonnes permissions de port (websm_port_t). Si la variable est définie sur false
, le rôle cockpit
ne gère pas les permissions SELinux du port de cockpit.
REMARQUE : cockpit_manage_selinux
est limité à ajouter une politique. Il ne peut pas être utilisé pour supprimer une politique. Si vous souhaitez supprimer une politique, vous devrez utiliser le rôle système selinux directement.
REMARQUE : Cette fonctionnalité est prise en charge uniquement lorsque le os_family
de l'hôte géré est RedHat
.
Voir aussi le guide Cockpit pour plus de détails.
cockpit_transactional_update_reboot_ok
cockpit_transactional_update_reboot_ok: true
Cette variable est utilisée pour gérer les redémarrages requis par les mises à jour transactionnelles. Si une mise à jour transactionnelle nécessite un redémarrage, le rôle procédera au redémarrage si cockpit_transactional_update_reboot_ok est défini sur true. Si défini sur false, le rôle informera l'utilisateur qu'un redémarrage est nécessaire, permettant ainsi un traitement personnalisé de l'exigence de redémarrage. Si cette variable n'est pas définie, le rôle échouera pour s'assurer que l'exigence de redémarrage n'est pas négligée.
Configuration du certificat
Par défaut, Cockpit crée un certificat auto-signé pour lui-même lors du premier démarrage. Cela devrait être personnalisé pour les environnements qui utilisent de vrais certificats.
Utiliser un certificat existant
Si votre serveur a déjà un certificat que vous souhaitez également utiliser avec Cockpit, pointez les options de rôle cockpit_cert
et cockpit_private_key
vers celui-ci :
cockpit_cert: /path/to/server.crt
cockpit_private_key: /path/to/server.key
Cela créera des symlinks /etc/cockpit/ws-certs.d/50-system-role.{crt,key}
.
Notez que cette fonctionnalité nécessite au moins la version 257 de Cockpit, c'est-à-dire RHEL ≥ 8.6 ou ≥ 9.0, ou Fedora ≥ 34.
Générer un nouveau certificat
Pour générer un nouveau certificat pour Cockpit, il est recommandé de définir la variable cockpit_certificates
. La valeur de cockpit_certificates
est transmise à la variable certificate_requests
du rôle certificate
appelé en interne dans le rôle cockpit
, qui génère la clé privée et le certificat. Pour les paramètres supportés de cockpit_certificates
, voir la section de documentation du rôle certificate_requests
.
Lorsque vous définissez cockpit_certificates
, vous ne devez pas définir les variables cockpit_private_key
et cockpit_cert
car elles seront ignorées.
Cet exemple installe Cockpit avec un certificat de serveur web émis par IdM en supposant que vos machines sont jointes à un domaine FreeIPA.
- name: Installer cockpit avec un certificat de serveur web Cockpit
include_role:
name: linux-system-roles.cockpit
vars:
cockpit_certificates:
- name: monger-cockpit
dns: ['localhost', 'www.example.com']
ca: ipa
group: cockpit-ws
Note : Générer un nouveau certificat en utilisant le rôle système certificate
dans le playbook reste supporté.
Cet exemple installe également Cockpit avec un certificat de serveur web émis par IdM.
# Cette étape est seulement nécessaire pour Cockpit version < 255 ; en particulier sur RHEL/CentOS 8
- name: Autoriser certmonger à écrire dans le répertoire de certificats de Cockpit
file:
path: /etc/cockpit/ws-certs.d/
state: directory
setype: cert_t
- name: Générer le certificat de serveur web Cockpit
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 # ou cockpit-wsinstance sur les nouvelles versions de Cockpit
REMARQUE : Le rôle certificate
, sauf en utilisant IPA et en rejoignant les systèmes à un domaine IPA, crée des certificats auto-signés, vous devrez donc configurer explicitement la confiance, ce qui n'est pas actuellement pris en charge par les rôles systèmes. Pour utiliser ca: self-sign
ou ca: local
, selon votre utilisation de certmonger, voyez la documentation de linux-system-roles.certificate pour plus de détails.
REMARQUE : La création d'un certificat auto-signé n'est pas supportée sur RHEL/CentOS-7.
Exemples de Playbooks
L'exemple le plus simple.
---
- name: Gérer cockpit
hosts: fedora, rhel7, rhel8
become: true
roles:
- linux-system-roles.cockpit
Un autre exemple, incluant le rôle comme une tâche pour contrôler quand l'action est effectuée. Il est également recommandé de configurer le pare-feu en utilisant le rôle fedora.linux_system_roles.firewall pour rendre le service accessible.
---
tasks:
- name: Installer la console web RHEL/Fedora (Cockpit)
include_role:
name: linux-system-roles.cockpit
vars:
cockpit_packages: default
#cockpit_packages: minimal
#cockpit_packages: full
- name: Configurer le pare-feu pour la console web
include_role:
name: fedora.linux_system_roles.firewall
vars:
firewall:
service: cockpit
state: enabled
rpm-ostree
Voir README-ostree.md
Licence
GPLv3
Install and enable the Cockpit Web Console
ansible-galaxy install linux-system-roles.cockpit