
Pianificare le operazioni via browser grazie a Ortro
Guida all’utilizzo di un particolare sistema di scheduling che rende più agevole la gestione e il controllo di uno o più computer connessi in rete
(pagina 1 di 3)
Quando si parla di pianificazione delle operazioni da
eseguire su un computer, il cosiddetto scheduling, si
fa sempre riferimento a Cron. Il successo di questo storico
sistema di pianificazione è dovuto essenzialmente
alla sua flessibilità, al supporto per la multi utenza e all’assenza
di limiti alle operazioni eseguibili. Inoltre, il suo funzionamento
è quasi banale: le operazioni da eseguire (che nel seguito dell’articolo
chiameremo job) vengono definite in appositi file ed eseguite
ad intervalli di tempo definiti dall’utente. Ma la semplicità
di Cron è anche il suo limite più grande, in particolare in ambienti
di rete. Vediamo perché.
- Pianificazione distribuita : ogni computer possiede la definizione
dei job da eseguire. Per aggiornare o aggiungere un job su diverse
macchine, bisogna modificare le configurazioni locali su ognuna;
- Notifiche di successo/errore : a meno che il job non gestisca
direttamente la notifica sullo stato di successo/fallimento, cron invia
in e-mail l’output dei programmi eseguiti. Dato che le operazioni
pianificate possono essere molte, la maggior parte dei job è
realizzata in modo da non produrre alcun output in caso di successo;
- Creazione ed esecuzione job : il più delle volte un job è uno script
in Bash o Sh, la cui complessità di realizzazione dipende fortemente
dal tipo di operazioni da svolgere. L’esecuzione manuale dei job
non è prevista, se non scovando i comandi nel file di definizione;
- Assenza di workflow : un job non può essere messo in relazione
con un altro e la sua esecuzione è unicamente funzione della data e
dell’orario di pianificazione. Ciò non permette la realizzazione di
workflow: procedure intelligenti programmate per eseguire uno o più job nella sequenza determinata
dallo stato di successo/fallimento nello
step precedente;
- Stato di esecuzione: non è possibile
conoscere quale job è in esecuzione
senza dover spulciare la lista dei
processi nel sistema. Inoltre, spesso
non è presente il suo l’output parziale
in quanto esso viene “silenziato”
per evitare una notifica in email non desiderata.
Con queste condizioni, gestire un sistema in cui sono definite
operazioni centralizzate è notevolmente complicato.
Ortro: scheduling centralizzato
Uno dei sistemi di pianificazione centralizzato più promettenti è
Ortro, un’applicazione web realizzata per sistemi LAMP (Linux,
Apache, Mysql e PHP) per l’esecuzione e il monitoraggio di job
su uno o più computer. L’architettura su cui si basa l’applicazione è
modulare ed è composta dai seguenti elementi:
- Web UI : rappresenta il livello di presentazione composto
dall’interfaccia web, dalla quale l’utente svolge tutte le funzioni
di modifica, esecuzione e visualizzazione dei job;
- Data Layer e Core Layer : questi due componenti, che insieme
formano il livello di business dell’applicazione, compongono tutte
le funzioni relative alla gestione ed esecuzione dei job sui sistemi;
- Plugins Layer : il terzo livello descrive la definizione dei plugin.
Ognuno definisce una tipologia di job, di notifica o di monitoraggio.
Questo tipo di architettura descrive un vero e proprio framework, il
quale può essere facilmente arricchito creando nuovi plugin. Essi sono
composti da file PHP, la cui realizzazione è banale, che permettono una
perfetta integrazione con l’interfaccia web e lo scheduler di pianificazione
ed esecuzione del programma. Attualmente il numero di plugin forniti dagli sviluppatori è limitato, ma sufficiente per creare ogni tipo
di operazione e la composizione di workflow complessi senza dover
necessariamente crearne di nuovi.
La fase di pre-installazione
Dopo tante parole è arrivato il momento di preparare tutto il necessario
per l’installazione di questo software. Ortro è un’applicazione per sistemi
LAMP. Quindi dovrete installare Apache2, il server MySQL e PHP5 sul
vostro sistema, possibilmente utilizzando i pacchetti forniti dalla distribuzione
in uso. Successivamente dovremo decomprimere l’archivio del
software Ortro in una directory da noi scelta.
cd /opt
tar -zxf /ortro-x.x.x.tar.gz
mv ortro-x.x.x /opt/ortro
chown www-data:www-data -R /opt/ortro
Se la directory non è nella Document Root di Apache, dovremo modifi care il file di configurazione globale (o del virtual host nel quale Ortro
dovrà essere accessibile) aggiungendo la seguente riga: Alias /ortro/ “/
opt/ortro/www/”. Ora per iniziare l’installazione vera e propria dovrete
puntare il browser all’indirizzo “http://ip/ortro”.
Installazione di Ortro
Tutti i passi necessari per portarla a termine senza problemi: dal sistema base ai plugin
Lingua e prerequisiti
L’installazione via web di Ortro
inizia con la scelta della lingua.
Fortunatamente l’italiano è tra le lingue
supportate fin dall’installazione. Successivamente
verrà illustrata la licenza e la verifica
dei requisiti di sistema per PHP e MySQL.
Il database
Lo step successivo riguarda i
parametri di connessione al
database di supporto da utilizzare. L’utente e
il database devono essere creati precedentemente
con uno dei numerosi tool di MySQL
tipo phpMyadmin o da riga di comando.
Il server SSH
Ortro opera utilizzando SSH.
Per questo motivo durante
l’installazione verranno richiesti i parametri
necessari per la creazione di una chiave SSH,
la cui parte pubblica dovrà essere distribuita
nei sistemi sui quali verrano eseguiti i job.
Post installazione
Finita questa prima fase di installazione
è necessario eliminare
il percorso contenente i file di installazione
e accedere al sistema con le credenziali
admin/admin per cambiare la password
predefinita dell’amministratore.
Ottenere i plugin
I plugin di base possono essere
scaricati dal sito ufficiale di Ortro.
Sono divisi in categorie e svolgono il ruolo di
definitore di tipologia di job o di modalità di
notifica. I file .gz dei plugin non devono essere
decompressi prima dell’installazione.
Installare i plugin
Nel pannello relativo ai plugin
è possibile visualizzare quelli
correntemente installati, eliminare quelli
non più necessari o aggiungerne di nuovi.
Alcuni possono essere configurati o durante
l’installazione o in un secondo momento.
Sistemi, database e identità.
 |
Sistema di gestione degli utenti di Ortro |
Per la definizione dei job è necessario registrare nel sistema i
computer sul quale essi verranno eseguiti. Il primo livello di
definizione è il “sistema”.
Esso è un contenitore di computer rappresentati come “host” ai quali è
associato un indirizzo IP. Un host può essere incluso in più di un
sistema.
Benché al momento non sia possibile assegnare un job alla totalità
del sistema (quindi ad un gruppo di macchine), questa categorizzazione
è necessaria per dare ordine alla creazione dei job e per sfruttare le
restrizioni
sui gruppi utenti. Ad esempio, gli utenti del gruppo “webmaster”
potrebbero dover monitorare e controllare lo stato di esecuzione dei
job
relativi al sistema “webserver”, ma non quelli degli altri sistemi
anche
se relativi agli stessi server. Inoltre, il framework di Ortro da la
possibilità
di associare i parametri di collegamento ad uno o più database per ogni
host. Analogamente, il sistema permette la definizione di identità,
ovvero
delle credenziali di accesso associate ad un sistema. Lo scopo di
queste
due tipologie di definizione è sgravare lo sviluppo dei plugin dal
compito
di dover memorizzare le credenziali di accesso necessarie. Ciò comporta
notevoli vantaggi nella sicurezza in quanto le definizioni a livello di
core
sono memorizzate in tutta sicurezza nel core, aspetto non garantito
quando
i parametri di accesso sono memorizzati come parametro di un plugin.
Connessioni e sicurezza
A seconda del tipo di job, Ortro utilizza diverse modalità di connessione al
computer sul quale esso andrà eseguito. Il framework supporta la connessione
diretta ai database e l’esecuzione di comandi dietro autenticazione
basata sul protocollo SSH. Entrambe le modalità sono a disposizione dei
plugin, i quali possono utilizzarle invocando delle semplici funzioni del
core. Tuttavia, i plugin possono definire ulteriori modalità di connessione
qualora lo desiderino. L’autenticazione SSH si basa sul meccanismo della
chiave DSA/RSA con coppia pubblica/privata. Il sistema che stabilisce
la connessione possiede la parte privata della chiave, mentre il sistema
a cui esso si collega è in possesso della parte pubblica, necessaria per
riconoscere la genuinità della chiave privata e stabilire una connessione
dati criptata. La chiave pubblica è disponibile selezionando la voce del
menudi Ortro “Scarica la chiave pubblica SSH”. Dopo aver ottenuto la
chiave, dovrete creare un utente (se non volete utilizzarne uno già esistente)
e copiare il contenuto del file in “.ssh/authorized_keys”:
cat publickey.ssh >> /home/ortro/.ssh/
authorized_keys
La connessione SSH svolge un ruolo cruciale in quanto è l’unico mezzo
sicuro per eseguire comandi sul sistema remoto. Tuttavia, la sicurezza
del sistema può essere messa in pericolo da incuria o sbadataggine. In
particolare, la chiave utilizzata da Ortro è priva di password. Dunque,
sul server su cui è installato questo software bisogna evitare in ogni
modo che essa sia leggibile accedendo da una pagina del server web o
da qualsiasi utente del sistema, in quanto il furto della chiave
fornirebbe
l’accesso immediato alle macchine su cui la parte pubblica della chiave
sia tra quelle autorizzate. Per quanto concerne invece la sicurezza
della
macchina remota, è assolutamente indispensabile che la chiave pubblica
non venga posta tra le chiavi autorizzate per l’utente root. Qualora
non si
possa fare a meno di dover utilizzare comandi che richiedono i
privilegi di
amministratore, è bene utilizzare “sudo” o opportuni script il cui
accesso
è riservato all’utente di Ortro, senza che sia possibile eseguire
comandi
potenzialmente pericolosi.