Afficher/cacher Sommaire
Cockpit est une interface d’administration de serveur interactive. Il est facile à utiliser et très léger. Cockpit interagit directement avec le système d’exploitation depuis une vraie session Linux dans un navigateur.
- Cockpit : une interface web pour gérer son serveur Linux
- Cockpit : une WebUI système pour Linux
- Gestion des machines virtuelles KVM avec Cockpit Web Console sous Linux
- How to manage a remote host via Cockpit
- Managing remote systems in the web console
Cockpit interface web
Avec l’interface Web de Cockpit on réalise de nombreuses tâches et surveiller l’état d’un serveur.
- Gérer les comptes utilisateurs
- Visualiser l’état du matériel (configuration, charge actuelle, etc.)
- Mettre à jour les paquets
- Visualiser les journaux du système
- Accéder à un Terminal en ligne
- Gérer le pare-feu Linux
- Créer et gérer des machines virtuelles (et containers)
- Gérer les services (par exemple : redémarrer Apache)
- Gérer plusieurs serveurs Linux avec un seul Cockpit
- […]
Installation
Debian
sudo apt update && sudo apt install cockpit
vous devez installer le package cockpit-machines
pour gérer les machines virtuelles
Pour les fonctionnalités supplémentaires, installer l’un des paquets suivants:
- cockpit-machines pour la gestion de machines virtuelles utilisant libvirt
- cockpit-pcp pour la lecture des paramètres de PCP et le chargement des archives de PCP
- cockpit-podman pour la gestion des conteneurs Podman
- cockpit-storaged pour configurer et surveiller le stockage, les disques et les supports sur le système.
- networkmanager pour la gestion Réseau
- firewalld pare-feu pour gérer le Pare-feu en utilisant le Cockpit dans Networking
- udisks2 pour gérer le stockage
hôte virtuel
Pour créer un proxy, vous devrez d’abord créer un bloc de serveur virtuel afin que nginx sache ce qu’il faut faire lorsqu’il reçoit une requête pour votre sous-domaine. Si ce bloc n’existe pas, nginx servira simplement la page par défaut.
Ce bloc serveur vous permettra d’accéder à Cockpit via http://cockpit.domain.tld (remplacer par votre nom de domaine):
server {
listen 80;
listen 443 ssl;
server_name cockpit.domain.tld;
location / {
# Required to proxy the connection to Cockpit
proxy_pass https://127.0.0.1:9090;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
# Required for web sockets to function
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Pass ETag header from Cockpit to clients.
# See: https://github.com/cockpit-project/cockpit/issues/5239
gzip off;
}
}
NOTE: Puisque Cockpit gère automatiquement la redirection http vers https, vous pouvez avoir un bloc serveur qui couvre les connexions http et https.
Une fois que vous avez ajouté le nouveau bloc hôte virtuel, vous devrez redémarrer nginx.
sudo systemctl reload nginx
Connexion
Connectez-vous avec votre nom d’utilisateur Debian qui doit être dans le groupe sudo
sudo usermod -aG sudo $USER
Remarque : les membres du groupe “sudo” sont considérés comme étant administrateur du serveur. Cela va permettre de modifier la configuration du serveur via Cockpit. Pour les comptes “non sudo”, l’accès à Cockpit sera possible, mais en lecture seule.
Maintenant, dans l’interface de connexion Cockpit, vous pouvez utiliser n’importe quel utilisateur que vous avez sur Debian pour vous connecter.
Ajout clés SSH
Avant l’ajout des clés , il faut utiliser un dossier accessible par l’administrateur du serveur cockpit
Pour éviter toute erreur, on utilise le dossier personnel de l’administrateur
# Créer dossier
sudo mkdir /sharenfs/cockpit
# Accessible groupe utilisateurs
sudo chown $USER:users /sharenfs/cockpit
On va générer des clés localement pour tous les serveurs distants à gérer par cockpit et copier la clé publique dans le presse papier
ssh-keygen -t ed25519 -o -a 100 -f /dossier_personnel_administrateur/.ssh/nom_clé
cat /dossier_personnel_administrateur/.ssh/nom_clé.pub # contenu clé publique à copier
Ajouter la clé publique au fichier authorized_keys
du serveur distant
Lorsque les clés ont été ajoutées et validées (en lançant une première connexion manuellement), on ouvre l’onglet session de cockpit web
La liste des clés présentes dans le dossier de l’administrateur s’affiche
Pour valider la clé, saisir, s’il y a lieu, le mot de passe puis Déverrouiller
Gérer plusieurs serveurs Linux
À partir d’un serveur où Cockpit est installé, on peut gérer plusieurs serveurs Linux !
Il y a 2 prérequis :
- que le serveur à gérer soit accessible via SSH
- Cockpit soit installé sur ce serveur.
Ensuite, sur un serveur central, que l’on peut considérer comme un serveur d’administration équipé de Cockpit, on va venir ajouter les hôtes distants.** La communication entre les deux serveurs sera établie via SSH.**
Ajout et déverrouillage des clés pour la connexion (A FAIRE A CHAQUE SESSION)
Session → Clés SSH
Pour ajouter un nouvel hôte, il faut cliquer en haut à gauche de l’interface. Pour ma part, je dois cliquer sur “leno@ rnmkcy.eu”. Ensuite, il faut cliquer sur le bouton “Ajouter un nouvel hôte” pour lancer l’assistant.
Il faut commencer par renseigner le nom d’hôte ou son adresse IP + port si différent de 22, ainsi que le nom du compte à utiliser (bien sûr on évitera “root”). Cliquez sur “Ajouter”.
Vous pouvez ensuite aller sur la page d’analyse du serveur avec la possibilité de passer en mode administrateur
Connexion depuis serveur Lenovo avec le PC EndeavourOS sur le même réseau
- PC EndeavourOS, fichier
/etc/ssh/sshd_config
- Choisir un autre port SSH : 55020
- Ne pas autoriser la connexion avec mot de passe :
PasswordAuthentication no
- Ajout clé publique
pc1-endeavouros.pub
au fichier~/.ssh/authorized_keys
- Redémarrer le service :
sudo systemctl restart sshd
- Règles parefeu
- sudo firewall-cmd –permanent –zone=public –add-port=55020/tcp
- sudo firewall-cmd –reload
- Serveur Lenovo
- Connexion ssh :
ssh -p 55020 -i .ssh/pc1-endeavouros yann@192.168.0.20
- Connexion ssh :
Liste des “hôtes” accessibles par cockpit (sous réserve que les clés SSH soient actives)