TAGS CLOUD
Incrementa dimensioniDecrementa dimensioni
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.
Pagina 1/3
Lascia un commento
Tag: pianificare, Ortro, browser, scheduling, cron, connessione, rete
Condividi