La gestione dei server Linux può essere eseguita completamente tramite shell, con strumenti come SSH. Tuttavia per i sysadmin non è raro affidarsi a tool che agevolano il workflow e rendono il lavoro di amministrazione, monitoraggio e manutenzione molto più semplice.
In questa guida vogliamo parlarvi di uno strumento molto popolare tra gli amministratori di sistema: Cockpit. Si tratta di una server admin interface interattiva che si interfaccia direttamente con il sistema operativo tramite il nostro browser web.
Cosa è Cockpit
I developer del progetto definiscono Cockpit come una "sysadmin login session in a web browser". Di fatto Cockpit consente all'amministratore di sistema di eseguire una vasto gamma di task da remoto, come ad esempio avviare un container, gestire lo storage, eseguire delle configurazioni di rete, ispezionare i log e molto altro.
Qualsiasi operazione svolta su Cockpit può ovviamente essere replicata tramite la shell e viceversa. Quindi i servizi avviati da Cockpit possono essere terminati o riavviati via SSH e, nello stesso modo, un applicativo già avviato prima della configurazione di Cockpit può essere gestito sempre all'interno di questo tool.
Gli output di errore possono essere agilmente recuperati dalla Cockpit journal interface e l'utente ha inoltre la possibilità di gestire le SSH key per l'autenticazione degli utenti. Non ci resta quindi che installare e configurare Cockpit all'interno del nostro server Linux.
Installazione di Cockpit su Linux
Cockpit è disponibile nei repository software di innumerevoli distribuzioni. Dunque i sysadmin non avranno particolari difficoltà nel reperirlo. Ecco come procedere alla sua installazione in base alla distribuzione di riferimento.
Debian
Abilitiamo i backports repository:
sudo echo "deb http://deb.debian.org/debian ${NOMEDELLARELEASE}-backports main" > \ /etc/apt/sources.list.d/backports.list
Se non conoscete il nome della release che state utilizzato potete scoprirlo tramite questo pratico comando:
sudo . /etc/os-release
Aggiorniamo poi il gestore di pacchetti APT con le modifiche appena eseguite:
sudo apt update
Infine recuperiamo i pacchetti di Cockpit:
sudo apt install -t ${NOMEDELLARELEASE}-backports cockpit
Red Hat Enterprise Linux
Apriamo bash e scriviamo:
sudo subscription-manager repos --enable rhel-7-server-extras-rpms
sudo yum install cockpit
sudo systemctl enable --now cockpit.socket
Se usate RHEL 7, oppure un non-default zone in RHEL 8, sarà necessario aggiungere questa configurazione al firewall:
sudo firewall-cmd --add-service=cockpit && sudo firewall-cmd --add-service=cockpit --permanent
Fedora
Nella shell digitiamo:
sudo dnf install cockpit
sudo systemctl enable --now cockpit.socket
sudo firewall-cmd --add-service=cockpit && sudo firewall-cmd --add-service=cockpit --permanent
Arch Linux
Avviamo il terminale ed invochiamo il gestore dei pacchetti:
sudo pacman -S cockpit && sudo systemctl enable --now cockpit.socket
OpenSUSE Tumbleweed
sudo zypper in cockpit
sudo systemctl enable --now cockpit.socket
sudo firewall-cmd --permanent --zone=public --add-service=cockpit && sudo firewall-cmd --reload
Accedere alla web interface di Cockpit
Risulta evidente come l'installazione di Cockpit su Linux sia davvero semplicissima. Una volta che il processo viene avviato sul sistema tramite systemd è possibile accedere all'interfaccia web di Cockpit tramite un comune web browser. Per utilizzare Cockpit dobbiamo quindi digitare l'indirizzo seguente nella barra degli URL:
https://IPDELSERVER:9090
Se non conoscete l'IP del server corrente potete ottenere questa informazione tramite bash digitando questo comando:
hostname -I
Come ouput dovreste quindi ricevere qualcosa di simile:
192.168.1.12
Quindi l'URL da digitare nel browser sarà essere simile a:
https://192.168.1.12:9090
Dopo aver premuto il tasto invio ci ritroveremo davanti alla schermata di login di Cockpit. A questo punto basterà inserire le credenziali, username e password, per accedere alla dashboard del programma.
Avviare un container tramite Cockpit
Cosa è possibile fare tramite Cockpit? Cerchiamo di capirlo tramite alcuni esempio pratici. Partiamo andando ad eseguire il deploy di un container. L'operazione è abbastanza semplice. Dopo esserci loggati clicchiamo sulla sezione chiamata "Podman Containers".
A questo punto premiamo sul pulsante azzurro posto a sinistra, "Create Container", cosi da accedere alla schermata di configurazione iniziale del container. Di base Cockpit sfrutta Podman per la gestione dei container ma se lo desideriamo possiamo scegliere dei software alternativi.
Dunque diamo un nome al nostro container ed impostiamo l'IP su cui dove essere reperibile, il disco/directory da utilizzare, l'utente a cui associarlo ed ovviamente il link che permetterà di recuperare l'immagine del container.
Una volta pronti per eseguire il tutto basta cliccare su "Create and Run" cosi da far partire il container appena configurato.
Tramite la medesima sezione si può anche gestire l'esecuzione del container, riconfigurarlo, monitorare il suo comportamento, analizzare i log tramite l'apposito pannello e applicare gli eventuali aggiornamenti.
Aggiornare i pacchetti da Cockpit
Cockpit permette di gestire anche il processo di upgrade di pacchetti. Per far questo basta recarsi nella sezione "Software updates" per capire se sono disponibili aggiornamenti per il proprio parco applicativi.
Cockpit sfrutta le API PackageKit D-Bus per reperire tali informazioni. Si tratta nel concreto di una suite software open source creata per interfacciarsi con diversi package manager. Parliamo principalmente di quelli che sfruttano rpm
ma sono compatibili anche i .deb
ed i .tgz
. Questo è possibile sfruttando appunto le librerie software fornite da D-Bus che vengono impiegate per assicurare la comunicazione tra i processi e PolicyKit.
Tale configurazione consente a Cockpit di essere svincolato dalla distribuzione. Quindi l'utente non deve ricordarsi il singolo comando per uno specifico gestore di pacchetti di una certa distribuzione, può affidarsi a Cockpit che gestirà tutto in autonomia. Basterà cliccare sul tasto "Install all updates" per eseguire l'aggiornamento della propria distribuzione e dei software installati.
L'utente può scegliere anche di utilizzare direttamente i comandi via shell tramite la sezione chiamata "Terminal" ed implementare gli upgrade usando il package manager delle distribuzione o sfruttare la CLI di Cockpit:
pkcon refresh
pkcon get-updates
Se si desidera avere i dettagli di una determinata release per un pacchetto specifico è possibile elaborare la richiesta in questo modo:
pkcon get-update-detail nomepacchetto
Si riceverà un output simile a questo:
details about the update:6.x86_64 [distribuzione]
Package: nomepacchettoXYZ
Bugzilla: URLdibugzilla
Update text: - update to nuovaversione
Quindi per avviare l'upgrade basta digitare:
pkcon update
Quest'ultimo comando andrà ad installare la nuova release dei pacchetti senza la necessità di ulteriori interventi.