Una soluzione per il Provisioning e la Software Distribution
Scenario Svariati server, con funzione in base all'area di competenza, dislocati nel territorio su Nodi Periferici collegati in rete (VPN) Un Centro di Gestione che raccoglie risorse e competenze per la gestione tecnologica del network
Requisiti Sistema integrato di gestione delle distribuzioni software sui nodi: I nodi periferici hanno profili di configurazione eterogenei Creazione e personalizzazione dei Software Repository cui attingono i nodi periferici Differente gestione tra software applicativo e di sistema Asincronismo nelle comunicazioni tra centro e nodi periferici
Requisiti (2) E ancora: Configurazione dei software applicativi personalizzata in base alle proprietà locali dei nodi periferici Console con interfaccia grafica per la gestione remota dei nodi periferici Sistema di monitoraggio integrato con eventi di notifica inviati dai nodi periferici al centro Console grafica per la reportistica del sistema di monitoraggio
Profili e Software Repository Differenziare la gestione per tipologia di nodo
Definizioni Software Repository Risorse accessibili in rete da cui ciascun nodo periferico può prelevare le versioni dei software applicativi per l'upgrade Proprietà Attributi definibili in maniera personalizzata come coppia <nome, valore>. Vengono utilizzate per la configurazione del software applicativo su ciascun nodo periferico
Definizioni (2) Profilo Rappresenta una tipologia di nodo periferico (ad esempio in base all'area di competenza). Ciascun profilo ha i suoi Software Repository e un insieme di Proprietà che lo caratterizzano Host Rappresenta il singolo nodo fisico da agganciare al sistema di provisioning. Al momento della creazione è necessario assegnargli un Profilo
Petra Provisioning Center Petra Provisioning Center è un sistema di provisioning del software che fornisce una componente di Software Distribution integrata al Centro di Gestione Territoriale. Grazie alle funzioni che semplificano pianificazione, collaudo e implementazione degli aggiornamenti software, è possibile ridurre notevolmente i tempi di installazione e gli errori associati alle operazioni manuali.
Architettura Petra Architettura Client/Server Componente centralizzata costituita dal Provisioning Collector che include la console di gestione e il sistema di monitoraggio Componente periferica costituita dal Provisioning Agent che deve essere installato su ciascun nodo che si vuole mettere sotto gestione remota
Provisioning Collector
Console La Console è la componente di gestione centralizzata del sistema di provisioning. È dotata di una interfaccia web che consente la gestione di: Accessi Profili Repository Host Property Tramite console si possono inviare e monitorare le operazioni remote e relativi esiti.
Operazioni Remote La componente Task Sender ha il compito di inviare i messaggi di invocazione di comandi remoti sui singoli nodi. Riceve le richieste dalla console in modalità asincrona tramite una coda. In caso di upgrade, i nodi accederanno ai Software Repository centralizzati tramite la componente YUM. I nodi periferici inviano messaggi di notifica relativi ad eventi locali. Questi messaggi vengono raccolti dalla componente Event Collector che li smista al sistema di monitoraggio.
Sistema di Monitoraggio Il Sistema di Monitoraggio è attualmente basato su NAGIOS e viene alimentato dalle notifiche periodiche inviate dai nodi periferici. Dotato di un repository dove vengono definiti i controlli (check) da eseguire per verificare lo stato di salute degli applicativi. Sistema di reportistica completo con visualizzazione grafica dello stato dei nodi e accessibile in maniera diretta dalla console grafica del sistema di provisioning. L'integrazione con una piattaforma di monitoraggio può essere realizzata come personalizzazione del prodotto.
Provisioning Agent
Provisioning Agent (2) Il Request Manager riceve i comandi remoti dal Collector e li smista allo specifico Task Executor: Updater Restarter Reconfigurer L'Event Manager invia le notifiche al Sistema di Monitoraggio sullo stato degli applicativi locali L'upgrade del software viene effettuato tramite la componente YUM Client.
Task Executors Updater Componente responsabile dell'aggiornamento del software applicativo accedendo ai Software Repository specifici per profilo tramite YUM Restarter Componente che esegue le operazioni di riavvio (stop start restart) degli applicativi locali Reconfigurer Componente che esegue la riconfigurazione degli applicativi sulla base dei valori delle proprietà specifiche dell'host
Setup Affinché i Task Executors siano in grado di eseguire le operazioni richieste è necessario che i Software Repository vengano costruiti come RPM che rispettino i seguenti vincoli: L'archivio RPM deve includere i seguenti eseguibili <path-archivio>/<nome-applicazione>/setup <path-archivio>/<nome-applicazione>/service Gli eseguibili devono rispondere alle seguenti interfacce command-line setup (install uninstall reconfigure) service (stop start)
Setup (2) L'archivio RPM deve essere configurato in modo da eseguire i seguenti script post-install In caso di installazione scripts/app-register nome-app nome-rpm In caso di disinstallazione scripts/app-unregister nome-app nome-rpm È possibile creare Software Repository con RPM a struttura libera nei casi in cui non sia necessario gestire tali applicativi da remoto (ad esempio nel caso dei software di sistema)
Web Console Gestione Remota
Gestione Remota Dal pannello di management si selezionano gli host e quindi si preme il pulsante corrispondente all'operazione che si vuole eseguire su tali host. Reconfigure Riconfigura gli host selezionati in base ai valori attuali delle proprietà. Se esiste, esegue prima il comando 'setup reconfigure', generico per il nodo, successivamente per tutti gli applicativi in gestione esegue 'nome-app/setup reconfigure'. Reset Rigenerazione completa dello stato sull'host. Utilizzata ad esempio in caso di sostituzione dell'host.
Gestione Remota (2) Tramite i pulsanti Up, Down e Restart della sezione Application Status è possibile avviare, fermare e riavviare tutti i servizi applicativi sul nodo. Nella sezione Maintenance troviamo: Upgrade Causa l'invio del comando di aggiornamento agli host che procederanno tramite YUM ad aggiornarsi rispetto ai repositories centralizzati. Halt / Reboot Effettua lo stop / riavvio degli host selezionati
Gestione Remota (3) Sempre nella sezione Maintenance: Change Password Modifica la password di root degli host selezionati Save Configuration Salva la configurazione degli host selezionati Manage Configurations Permette di gestire le configurazioni precedentemente salvate
Web Console (2) Gestione degli Host
Web Console (3) Gestione dei Profili
Web Console (4) Gestione delle Properties
Web Console (5) Gestione dei Repository
Monitorare gli Aggiornamenti Nel pannello di monitoraggio è evidenziata la versione del software installata e la data di installazione:
Monitoraggio di sistema Le risorse di sistema e lo stato degli applicativi può essere controllato dai pannelli del sistema di monitoraggio
Centro di Gestione SPCoop Petra Provisioning Center è stato impiegato per la gestione remota delle Porte di Dominio OpenSPCoop e degli applicativi contestuali relativamente alla piattaforma di cooperazione applicativa di Regione Toscana. Link.it mantiene aggiornati i software repository e le configurazioni per Petra specifiche per la gestione di progetti che utilizzano il software OpenSPCoop.
Centro di Gestione SPCoop (2)
Repository per SPCoop Repository Petra per Software di Sistema: CentOS Apache / Jboss PostgreSQL Repository Petra per Software applicativo: OpenSPCoop I repository sono già formattati per essere agganciati al sistema di provisioning.
Property per SPCoop Le collezioni di proprietà per la configurazione di tutto il software distribuito sui nodi Porta di Dominio. Esempio Property di Sistema: PetraPDDName PetraCertSubject NalHostname NagiosServer VpnVirtIP PublicIP Nome della Porta di Dominio Subject del certificato per il client petra Hostname del nodo periferico Indirizzo del sistema di monitoraggio IP assegnato alla connessione IPSec IP principale del sistema
Property per SPCoop (2) Esempio property di Jboss HttpdPort HttpsdPort AjpPort maxthreads JbossClusterId Porta HTTP Jboss_udp_group Jboss_udp_port Java_opts Indirizzo UDP Porta UDP Opzioni Java Porta HTTPS Porta AJP Numero massimo di threads Identificatore del cluster Jboss
Property per SPCoop (3) Esempio di property per OpenSPCoop NomeSoggettoDefault TipoSoggettoDefault DatasourceIP DatasourcePort DatasourceType Nome Soggetto default per la PdD MaxClients Numero massimo di clients paralleli Tipo Soggetto default per la PdD Indirizzo del datasource Porta del datasource Tipo del Datasource (oracle, mysql, ecc.)
Esempio: Prima Installazione Si aggiunge il nuovo host indicando: Nome, Descrizione, IP, Porta (del servizio Petra), Password Profilo Tipo: Active = host chiede operazioni a collector Passive = collector invia operazioni tramite executor Both = entrambi i meccanismi sono attivi
Esempio: Prima Installazione (2) L'host aggiunto eredita le property dal suo profilo con i valori di default previsti. Cliccando sul nome della property la si può modificare scegliendo il valore tra quelli ammessi o fornendo un nuovo valore. Le property vengono propagate sul db locale dell'host
Esempio: Prima Installazione (3) Il nuovo host è visibile nel pannello di management
Esempio: Prima Installazione (4) Il nodo periferico deve essere inizializzato tramite l'installazione di un CD con il software di base Al termine dell'installazione del CD si deve attivare la connessione di rete Si deve installare il certificato del sistema di Provisioning
Esempio: Prima Installazione (5) Il passo successivo sarà quello di selezionare il nuovo host ed effettuare un UPGRADE
Esempio: Prima Installazione (6) UPGRADE Dopo aver premuto il pulsante di UPGRADE, la Console mette nella coda del Task Sender l'operazione di Upgrade da inviare all'host remoto selezionato. Appena l'host riceve il comando viene attivato il Task Executor UPGRADE che tramite YUM inizia l'aggiornamento dei pacchetti dai Software Repository Centrali. Gli script post-install effettuano le configurazioni sostituendo nei template i placeholder con i valori delle proprietà specifiche per l'host.
Esempio: Prima Installazione (7) Ogni volta che si modificano le proprietà di un host e necessario effettuare una RECONFIGURE
Esempio: Prima Installazione (8) RECONFIGURE Dopo aver premuto il pulsante di RECONFIGURE, la Console mette nella coda del Task Sender l'operazione di Reconfigure da inviare all'host remoto selezionato. Appena l'host riceve il comando viene attivato il Task Executor RECONFIGURE che esegue il comando 'setup reconfigure' Vengono rigenerate le configurazioni dei software sostituendo nei template i placeholder con i valori aggiornati delle proprietà specifiche per l'host.
Esempio: Reinstallazione Può accadere di dover reinstallare un nodo periferico, ad esempio a causa di un guasto. Si dovrà procedere con l'installazione del CD di base sull'host Configurazione della rete Installazione del certificato del Sistema di Provisioning L'host è già registrato sulla console e quindi non occorre alcun intervento da questo lato
Esempio: Reinstallazione (2) Lanciando il comando RESET verranno reinviate le proprietà all'host remoto
Esempio: Reinstallazione (3) RESET La console invia tutte le proprietà specifiche per l'host, rigenerando il db locale UPGRADE Successivamente si potrà procedere con l'upgrade per l'aggiornamento del software installato tramite il CD di base RECONFIGURE Eventuali modifiche sulle property dovranno essere seguite dalla reconfigure per aggiornare le configurazioni del software