Fermer

novembre 9, 2018

Comment installer Cockpit sur Ubuntu 18.04 –

Comment se déployer sur Alibaba Cloud ECS avec Mina - SitePoint


Cet article a été publié à l'origine sur Alibaba Cloud . Merci de soutenir les partenaires qui rendent SitePoint possible.

Cockpit est un gestionnaire de serveur qui facilite l'administration de vos serveurs GNU / Linux via un navigateur Web. Il permet de découvrir Linux, ce qui permet aux administrateurs système d’effectuer facilement des tâches telles que le démarrage de conteneurs, l’administration du stockage, la configuration réseau, l’inspection des journaux, etc.

Cockpit permet de basculer facilement entre le terminal et l’outil Web. Un service démarré via Cockpit peut être arrêté via le terminal. De même, si une erreur se produit dans le terminal, elle est visible dans l’interface du journal Cockpit. Cockpit vous permet de surveiller et d’administrer plusieurs serveurs simultanément. Ajoutez-le simplement et votre serveur s'occupera de ses amis.

Cockpit est publié sous la licence LGPL v2.1 + et est disponible pour Redhat, CentOS, Debian, Ubuntu, Atomic et Arch Linux. Le cockpit est compatible et fonctionne bien avec les serveurs Alibaba Cloud Elastic Compute Service (ECS) . Dans ce tutoriel, je vais installer Cockpit sur un ECS sur lequel Ubuntu 18.04 LTS est installé. Jusqu'à ce que Ubuntu 18.04 arrive à maturité et qu'il soit inclus dans la bibliothèque d'images de système d'exploitation d'Alibaba Cloud, nous pouvons mettre à niveau Ubuntu 16.04 à Ubuntu 18.04 en utilisant l'utilitaire do-release-upgrade .

Conditions préalables

  1. Vous devez avoir Alibaba Cloud le service Elastic Compute Service (ECS) activé et vérifié pour votre méthode de paiement valide. Si vous êtes un nouvel utilisateur, vous pouvez obtenir un compte gratuit sur votre compte Alibaba Cloud. Si vous ne savez pas comment configurer votre instance ECS, vous pouvez vous reporter au guide de démarrage rapide de ce tutoriel ou .
  2. Vous devez configurer le nom d'hôte de votre serveur. 19659007] Accès à la console VNC de votre client Alibaba Cloud ou SSH installé sur votre PC.

Une fois les conditions préalables remplies, connectez-vous en tant qu'utilisateur root avec votre nom d'utilisateur et votre mot de passe via le client SSH (par exemple, Putty) ou la console VNC disponible dans votre ordinateur. Tableau de bord du compte Alibaba Cloud.

Installez Cockpit sur Ubuntu 18.04

Le cockpit est inclus dans Ubuntu 18.04, vous pouvez donc utiliser la commande apt pour l'installer.

sudo apt update

Installer le paquetage Cockpit.

sudo apt -y install cockpit

Démarrer et activer le cockpit.

 sudo systemctl démarrer cockpit.socket
sudo systemctl enable cockpit.socket

Utilisation de Cockpit

Une fois que vous avez démarré le service Cockpit, celui-ci commence à écouter sur le port 9090. Ouvrez maintenant votre navigateur et accédez à son adresse ci-dessous.

https: // ip-address : 9090

Cockpit utilise un certificat SSL auto-signé pour une communication sécurisée. Vous devez donc ajouter une exception dans votre navigateur pour accéder au cockpit.

Connectez-vous à l'aide de votre compte utilisateur local. Dans mon cas, il s'agit de gqadir.

Si l'utilisateur est un utilisateur non privilégié et a un accès sudo, cochez la case Réutiliser mon mot de passe pour des tâches privilégiées.

Nous Il faut maintenant insérer nos identifiants dans les champs correspondants et cliquer sur le bouton Log In . Une fois connecté, nous serons redirigés vers la page principale du cockpit:

Jetons-y un coup d'oeil. La section principale de la page contient des informations sur la machine sur laquelle nous fonctionnons, sous les noms de matériel et . ]. Dans ce cas, j'utilise Ubuntu sur une machine virtuelle. Par conséquent, la valeur de la section matériel est QEMU Standard Pc .

Nous avons également un menu déroulant qui nous permet d'effectuer une option d'alimentation sur le système en tant que redémarrer ou arrêter. Sur la droite, vous pouvez voir des graphiques qui nous permettent de surveiller les activités cruciales du système, dans l'ordre: utilisation de la CPU et de la mémoire, activité du disque et trafic sur le réseau.

La section des journaux

Dans le menu de la colonne de gauche, juste en dessous de . ] section système nous pouvons cliquer sur sur les journaux pour accéder à la page consacrée aux journaux système. Ici, en haut de la page, nous avons deux menus sympathiques qui nous permettent de filtrer les journaux par période et par gravité, en choisissant entre problèmes avis avertissements et erreurs .

Pour accéder à des informations détaillées sur un message du journal, il suffit de cliquer sur la ligne correspondante: nous serons redirigés vers une page contenant les détails du journal.

La section de stockage

Pour aller plus loin, nous avons la session de stockage . Nous avons ici quelques graphiques affichant les activités de lecture et d'écriture des disques, et immédiatement après une barre d'état indiquant la quantité d'utilisation des systèmes de fichiers. Nous avons également l'option d'ajouter facilement NFS Mounts et Raid Devices .

Nous pourrions inspecter un lecteur spécifique en cliquant sur la section correspondante de droite. dans la boîte Drives : nous pourrons également créer une nouvelle table de partition (si certaines conditions sont respectées – le disque ne doit pas être monté, par exemple) sur le lecteur spécifié: l'opération effacera toutes les données à ce sujet.

La section Réseau

Dans la section dédiée à la surveillance et à l'administration de réseau, il est possible d'observer des graphiques sur les paquets envoyés et reçus pour chaque interface et sur l'activité du réseau en général. Les détails d'une interface, tels que son adresse MAC sont visibles en cliquant sur une ligne de l'interface: nous avons également la possibilité d'activer ou de désactiver cette interface. Il est également possible d'ajouter facilement une liaison un pont ou un vlan à l'aide des boutons dédiés. Les journaux du réseau apparaissent en bas de la page.

Sections des comptes et des services

Les deux dernières sections disponibles concernent la gestion des comptes et des services. Dans le premier cas, nous pouvons très facilement créer, supprimer ou obtenir des informations sur les utilisateurs disponibles sur le système. En cliquant sur une section utilisateur spécifique, nous aurons la possibilité de changer son mot de passe, de verrouiller son compte et même d’ajouter des clés publiques autorisées :

Dans les services nous présenterons un aperçu des démons et des cibles du système. L'interface Web nous donne la possibilité de démarrer, arrêter, activer ou désactiver chaque service, en nous indiquant son état actuel. Grâce au cockpit, nous pouvons également gérer facilement les cibles systemd (l’équivalent des niveaux d'exécution classiques), les socles et les minuteries .

[19659003] Voyons maintenant comment nous pouvons configurer Cockpit pour nos applications.

1. Fichier de configuration du cockpit – cockpit.conf

Le cockpit peut être configuré via /etc/cockpit/cockpit.conf . Ce fichier a une syntaxe de fichier INI et contient donc des paires clé / valeur, regroupées en groupes thématiques. Voir les exemples ci-dessous pour plus de détails.

Remarque: Le port sur lequel le cockpit écoute ne peut pas être modifié dans ce fichier. Pour changer de port, modifiez le fichier systemd cockpit.socket.

WebService

Origins

Par défaut, le cockpit n'accepte pas les connexions Websocket entre domaines. Utilisez ce paramètre pour autoriser l'accès à partir d'autres domaines. Les origines doivent inclure schéma, hôte et port, si nécessaire.

 [WebService]
 Origins = https://somedomain1.com
 https://somedomain2.com:9090

ProtocolHeader

Configurez le cockpit pour qu'il examine le contenu de cet en-tête afin de déterminer si une connexion utilise tls. Cela ne devrait être utilisé que lorsque le poste de pilotage est derrière un proxy inversé et qu'il faut veiller à ce que les demandes entrantes ne puissent pas définir cet en-tête.

 [WebService]
 ProtocolHeader = X-Forwarded-Proto

LoginTitle

Définissez le titre du navigateur pour l'écran de connexion.

LoginTo

Lorsque la valeur est définie sur true l'option Se connecter à sur l'écran de connexion. est visible et permet de se connecter à un autre serveur. Si cette option n'est pas spécifiée, elle sera automatiquement détectée selon que le processus cockpit-ssh est disponible ou non.

RequireHost

Lorsqu'il est défini sur true cockpit will obliger les utilisateurs à utiliser l'option Connect to pour spécifier l'hôte auquel se connecter.

MaxStartups

Identique à l'option de configuration sshd du même nom. Spécifie le nombre maximal de tentatives de connexion simultanées autorisées. Les connexions supplémentaires seront abandonnées jusqu'à ce que l'authentification réussisse ou que les connexions soient fermées. La valeur par défaut est 10.

Vous pouvez également activer la suppression aléatoire précoce en spécifiant les trois valeurs séparées par deux points. Start: rate: full (par exemple, "10:30:60"). Le cockpit commencera à refuser les tentatives d’authentification avec une probabilité de taux / 100 (30%) s’il existe actuellement au départ (10) connexions non authentifiées. La probabilité augmente linéairement et toutes les tentatives de connexion sont refusées si le nombre de connexions non authentifiées atteint au maximum (60).

AllowUnencrypted

Si la valeur est true, le cockpit accepte les connexions HTTP non chiffrées. . Sinon, il redirige toutes les connexions HTTP vers HTTPS. Les exceptions sont les connexions de localhost et pour certaines URL (comme / ping ). La valeur par défaut est false.

UrlRoot

L'URL racine à laquelle vous servirez le cockpit. Lorsque fourni, le cockpit s’attendra à ce que toutes les demandes soient précédées de l’URL donnée. Ceci est surtout utile lorsque vous utilisez cockpit derrière un proxy inverse, tel que nginx. / cockpit / et / cockpit + sont réservés et ne doivent pas être utilisés. Par exemple, / cockpit-new / est acceptable. / cockpit / et / cockpit + new / ne le sont pas.

Journal

Fatal

Type de journaux enregistrés dans le pont de traiter comme fatal. Séparez plusieurs valeurs avec des espaces. Les valeurs pertinentes sont: criticals et warnings.

OAuth

Le cockpit peut être configuré pour prendre en charge le flux d'autorisation d'octroi implicite OAuth. En cas de succès, le jeton oauth résultant sera transmis à cockpit-ws à l'aide du système Bearer . Pour que la connexion soit réussie, le cockpit doit également être configuré pour vérifier et autoriser les jetons Bearer .

URL

Il s'agit de l'URL par laquelle le cockpit redirige les utilisateurs. navigateur à quand il doit obtenir un jeton oauth. Cockpit ajoutera un paramètre redirect_uri à l'URL indiquant l'emplacement où le fournisseur oauth doit être redirigé une fois le jeton obtenu.

ErrorParam

Lorsqu'un fournisseur oauth a été redirigé vers un cockpit , recherchez ce paramètre dans la partie chaîne de requête ou fragment de l’URL pour rechercher un message d’erreur. S'il n'est pas fourni, il sera remplacé par défaut par error_description .

TokenParam

Lorsqu'un fournisseur oauth redirige un utilisateur vers le cockpit, recherchez ce paramètre dans la partie requête de la requête ou dans le fragment l'URL pour trouver le jeton d'accès. Lorsqu'il n'est pas fourni, il sera par défaut à access_token .

2. Service Web Cockpit – cockpit-ws

Le programme cockpit-ws est le composant de service Web utilisé pour la communication entre le navigateur et les divers outils et services de configuration tels que cockpit-bridge (8).

Les utilisateurs ou administrateurs ne devraient jamais avoir besoin pour démarrer ce programme, car il a été lancé automatiquement par systemd (1) au démarrage.

cockpit-ws [--help] [--port PORT] [--no-tls] [--local-ssh] [--address ADDRESS]

Sécurité du transport

Pour spécifier le certificat TLS utilisé par le service Web, il suffit de supprimer un fichier avec le extension .cert dans le répertoire /etc/cockpit/ws-certs.d . S'il y a plusieurs fichiers dans ce répertoire, la priorité la plus élevée est choisie après le tri.

Le fichier .cert doit contenir au moins deux blocs PEM de style OpenSSL. Premier ou plusieurs blocs BEGIN CERTIFICATE pour le certificat de serveur et les autorités de certification intermédiaires et un dernier bloc contenant une clé BEGIN PRIVATE KEY ou similaire. La clé ne peut pas être cryptée.

S'il n'y a pas de certificat TLS, un certificat auto-signé est automatiquement généré à l'aide de openssl et stocké dans le 0-self-signed.cert .

Lors de l’enregistrement dans un domaine FreeIPA, un certificat SSL est demandé au serveur IPA et stocké dans 10-ipa.cert .

Pour vérifier quel certificat cockpit-ws utilisera, exécutez la commande suivante:

$ sudo remotectl certificate

Si vous utilisez certmonger pour gérer les certificats, vous pouvez utiliser la commande suivante pour préparer automatiquement concaténée ] .cert fichier:

 CERT_FILE = / etc / pki / tls / certs / $ (nomhôte) .pem
 KEY_FILE = / etc / pki / tls / private / $ (nomhôte) .key

 Demande getcert -f $ {CERT_FILE} -k $ {KEY_FILE} -D $ (nomhôte --fqdn) -
 C "sed -n w / etc / cockpit / ws-certs.d / 50-from-certmonger.cert
 $ {CERT_FILE} $ {KEY_FILE} "

Délai d'attente

Lorsqu'il est lancé via systemd (1), cockpit-ws se ferme au bout de 90 secondes si personne ne se connecte ou après que le dernier utilisateur est déconnecté.

Options

Commande Description
] –Help Afficher les options d'aide
–local-ssh Normalement cockpit-ws utilise cockpit-session et PAM pour authentifier l'utilisateur et démarrer une session. Si cette option est activée, il s'authentifiera via le port 22.0 de 127.0.0.1 via SSH.
–port PORT Servir les requêtes HTTP PORT au lieu du port 9090. Généralement, Cockpit est lancé à la demande par l'activation de socket Systemd, et cette option n'a aucun effet. Mettez à jour le fichier cockpit.socket, directive ListenStream, de la manière habituelle avec systemd.
–address ADDRESS Liez-vous à l'adresse ADDRESS au lieu de l'être à toutes les adresses disponibles. Généralement, Cockpit est lancé à la demande par l’activation de la prise Systemd, et cette option n’a aucun effet. Dans ce cas, mettez à jour la directive ListenStream dans le fichier cockpit.socket de la manière habituelle systemd.
–no-tls N'utilisez pas TLS.

Environment

Le processus cockpit-ws utilisera la variable d'environnement XDG_CONFIG_DIRS de la spécification XDG basedir pour trouver son fichier de configuration cockpit.conf (5).

De plus, la variable d'environnement XDG_DATA_DIRS de la spécification XDG basedir peut être utilisée pour remplacer l'emplacement de traitement des fichiers statiques. Ce sont les fichiers qui sont servis à un utilisateur non connecté.

3. Configuration de l'accès à distance – remotectl

Le programme remotectl configurera l'accès à distance au système. Il gère actuellement le certificat SSL du poste de pilotage.

remotectl {COMMAND} [OPTIONS...]

Commandes

Certificat

Gérer le certificat SSL du cockpit. S'il est utilisé sans options, il vérifiera si le cockpit dispose d'un certificat valide sans apporter de modifications.

–assure Assurez-vous qu'un certificat existe et peut être chargé. Le certificat sera créé s'il n'existe pas déjà.

– nom d'utilisateur L'utilisateur unix qui devrait posséder le certificat. Ne prend effet que s'il est utilisé avec –assure .

– nom du groupe Le groupe unix devant lire le certificat. Ne prend effet que si elle est utilisée avec –assure .

Si des arguments supplémentaires sont fournis, ils sont traités comme des fichiers devant être combinés pour créer un fichier de certificat. Si les fichiers combinés sont validés, ils seront enregistrés à l'emplacement approprié en utilisant le nom du premier fichier attribué avec l'extension modifiée en .cert. Par exemple:

un certificat remotectl server.pem chain.pem key.pem

donnera le résultat server.cert . Si server.cert existe déjà, il sera écrasé.

Options

Commande Description
–help Afficher les options d'aide.
–verbose Imprimer messages verbeux sur la tâche.

4. Cockpit Host Bridge – cockpit-bridge

Le programme cockpit-bridge est utilisé par Cockpit pour relayer des messages et des commandes du serveur Web au serveur. Entre autres choses, il relaie DBus et génère des processus pour le compte de l'interface utilisateur Web.

Ce programme n'est pas exécuté de manière routinière par les utilisateurs ou les administrateurs. Il se trouve dans le $ PATH afin que Cockpit puisse le trouver lors de la connexion entre hôtes. Toutefois, certains diagnostics sont disponibles lors de l'exécution en ligne de commande.

cockpit-bridge [--help] [--packages]

Options

Commande Description
–help Afficher les options d'aide.
– interaction = frontière Interagissez avec le protocole raw cockpit1. Utile pour le débogage et les tests. Spécifiez une limite qui doit figurer sur une ligne vide entre les messages.
–packages Répertorie tous les packages Cockpit disponibles et quitte. Notez que ceci inclut les paquets disponibles pour l'utilisateur qui exécute cette commande.

Conclusion

Bien qu'il ne remplace pas complètement la ligne de commande, Cockpit nous permet de disposer d'une vue d'ensemble graphique des principaux composants et de l'état général d'une machine. . Plusieurs machines peuvent être gérées, en les ajoutant au serveur principal Cockpit, c'est-à-dire la machine sur laquelle le service est exécuté. Les tâches quotidiennes sont facilement accomplies via l'interface Web que nous venons de visiter: essayez-le, cela pourrait vous rendre la vie plus facile!



Source link