Ajenti, come dovrebbe essere un pannello di controllo web per server linux

A differenza dei suoi maggiori e più conosciuti competitor, cPanel, Plesk, ISPConfig (PHP) e Webmin (Perl), Ajenti è l’unico scritto in Python e offre una flessibilità che altri prodotti non hanno.

pannello di constrollo webserver

Nella platea di pannelli di controllo web server messi a disposizione vale la pena soffermarsi su Ajenti, soluzione meno conosciuta rispetto ai principali competitor, ma che include una serie di caratteristiche che lo rendono davvero interessante.

Per quanto concerne le altre soluzioni, almeno nell’esperienza pluridecennale di chi scrive l’articolo, ci sono aspetti che lasciano abbastanza contrariati. In particolare, parliamo di strumenti abbastanza invasivi, ovvero che vanno a modificare in modo sostanziale l’intero sistema.  Qualora si volesse adottare una di queste soluzioni occorrerebbe necessariamente fare le seguenti considerazioni:

  • il server potrà essere utilizzato esclusivamente nel modo definito dal software;
  • la scelta di installare o meno il software va fatta al momento della creazione del server;
  • poiché dovrebbe essere il primo software ad essere installato, difficilmente può essere installato su un server operativo e configurato da tempo, senza andare incontro a diverse problematiche 
  • la customizzazione e l’eliminazione del software si rivelano piuttosto ostiche.

Al contrario, Ajenti è costruito in modo modulare (plugins) e va a modificare solo il minimo indispensabile e nel modo meno invasivo possibile, seguendo standard che sono comunemente riconosciuti.

Principalmente Ajenti è pensato come pannello amministrativo di un server via web,  tant’è vero che sul sito viene introdotto con l’affermazione:

“Installato una volta non dovrai più cercare su Google per il download di PuTTY.”

A dire il vero, per un sistemista che generalmente accede ad un server via SSH ed opera tramite la shell, tale aspetto non è nemmeno particolarmente interessante, se non fosse per  un’estensione, che al contrario merita particolare attenzione: il modulo per il web hosting Ajenti V, il quale è composto da tanti piccoli pacchetti, a secondo delle funzioni che si vogliono abilitare (ftp, gunicorn, mail, mysql, nodejs, php, ruby).

Di base va installato il modulo ajenti-v e quello relativo al web server (nginx).

Tale interfaccia web per la gestione dei web hosting, oltre a permettere la configurazione anche ad utenti meno esperti, agevola notevolmente il lavoro, poiché per la configurazione è necessario inserire solo le informazioni essenziali, senza doversi ricordare la sintassi delle diverse direttive del server web. 

La configurazione dei web hosting è suddivisa in diverse schede, che riportano le principali impostazioni.


1_general.png


2_domains.png

Le impostazioni di base possono essere ampiamente customizzate sia a livello delle singole location (Content), che relativamente alle direttive server (Advanced: Custom configuration) ed http(Advanced: Custom top level configuration).

5_content.png

Quest’ultima, per esempio, è molto pratica per poter creare un blocco server per il redirect HTTP -> HTTPS, senza dover configurare un apposito web hosting.

Interessante è anche la scheda Processes, nella quale è possibile configurare un processo che viene gestito dal Supervisord di sistema (per esempio per creare un processo di Node.js, che è collegato al web hosting).

processes.png


Ulteriori funzionalità installate, verranno aggiunte come schede supplementari  (ftp, mysql) o nell’elenco dei Content configurabili.

A livello di filesystem, la configurazione di Ajenti é salvata in file in formato JSON (i file JSON possono essere anche modificati a mano e ricaricati con l’apposita API).

Per quanto riguarda invece la configurazione dei diversi servizi, Ajenti agisce esclusivamente su specifiche cartelle. Per esempio nel caso del web server nginx, la cartella /etc/nginx ed il suo contenuto sono gestiti in modo completamente automatico, pertanto non possono essere apportate modifiche a mano, poiché verrebbero sovrascritte (se necessario, si può intervenire direttamente sui file di configurazione di Ajenti).

Inoltre per poter aggiungere delle configurazioni personalizzate, sono state predisposte delle cartelle specifiche:

  • /etc/nginx.custom.d/
  • /etc/nginx.modules.d/

Se nella cartella niginx.custom.d vengono aggiunti dei file di configurazione (*.conf), questi verranno accodati alla configurazione generale di nginx.

All’interno di tale cartella si può anche creare una sottocartella in cui inserire dei file di configurazione da poter richiamare con la direttiva include.

Per poter modificare il contenuto dei file di configurazione generali, che vengono rigenerati automaticamente ogni volta, si dovranno modificare direttamente i file di template di Ajenti, che però verranno sovrascritti in caso di aggiornamento dei pacchetti di sistema.

La versione 1.x è basata su Python 2, pertanto è da considerarsi obsoleta, visto che è cessato il supporto a quella versione di Python. Allo stato attuale è in sviluppo la nuova versione, Ajenti 2, basato su Python 3 e che fa uso del framework AngularJS per il frontend.

Purtroppo non è previsto lo sviluppo della nuova versione del modulo per il web hosting ( Is this project DEAD?), poiché il progetto non ha avuto la “trazione” sperata dal principale iniziatore e sviluppatore Eugeny, che ormai ha principalmente solo funzione di coordinatore del progetto (mentre lo sviluppo viene portato avanti, molto a rilento, dai pochissimi volontari che vi possono dedicare il proprio tempo).

Autoreadmin
Potrebbero interessarti...