 |
» |
|
|
 |
È possibile utilizzare gli strumenti Distributed
Systems Administration Utilities - DSAU - per
inviare file e comandi verso sistemi designati del proprio cluster
o della rete. Gli strumenti DSAU offrono: Configuration
synchronization
Con la sincronizzazione della configurazione, si può avere
la sicurezza che i sistemi del proprio cluster o della rete siano
conformi allo standard scelto. Come saranno effettuate delle modifiche
al master di configurazione, queste saranno trasmesse in tutti i
sistemi client. Con la registrazione eventi consolidata, è possibile
esaminare un singolo file di log contenente le voci di tutti i sistemi
nella propria configurazione, ordinate secondo data ed ora, in modo
da reperire facilmente una data voce. Con la distribuzione dei comandi, da un sistema designato è possibile inviare
il medesimo comando verso tutti gli altri sistemi nella propria configurazione.
In questo modo sarà eliminata l’esigenza di esaminare tutti
i sistemi nella configurazione e di molte operazioni manuali. Introduzione
a Configuration Synchronization |  |
Per gli amministratori di sistema, gestire la configurazione
di un gruppo di sistemi distribuiti e le sue variazioni è una
sfida costante. Sono disponibili molti strumenti di ausilio per
la gestione dei vari aspetti delle configurazioni multisistema.
Ad esempio, per la gestione degli account, le soluzioni standard
comprendono Network Information System (NIS) e Lightweight Directory
Access Protocol (LDAP). Per la sincronizzazione a livello di file,
sono disponibili strumenti come rdist ( vedere la manpage rdist(1)) e rsync. System Insight Manager di HP serve a rilevare, controllare
e gestire gruppi di sistemi. Novità di
questo gruppo di strumenti è Configuration Engine (cfengine). cfengine è un diffuso strumento open source per la sincronizzazione della
configurazione. Consente la gestione della configurazione basata
su criteri o su obiettivi, che permettono all’amministratore
di definire le azioni d’amministrazione da applicare a
gruppi di sistemi, in modo che essi raggiungano la condizione desiderata. Lo strumento cfengine è su base client/server. Un sistema centrale master
di configurazione, o server dei criteri, ospita il file dei criteri
di configurazione, che definisce le operazioni di gestione da eseguire
in ogni client amministrato. Il master di configurazione ospita
inoltre i file delle “immagini golden”, le copie
di riferimento dei file da distribuire nei client. L’amministratore
può utilizzare cfengine per eseguire operazioni come: Accertarsi
che i sistemi client stiano utilizzando un insieme corretto di file
di configurazione, tramite la copia dei file o delle directory di riferimento. Disattivare nel client i
file configurati in modo inadeguato. Controllare le autorizzazioni
dei file, della proprietà, e verificare le variazioni del
valore checksum. Eseguire in ogni client i
comandi della shell specificati. Controllare i processi ed
i loro segnali. Controllare il montaggio
di determinati filesystem.
Per aiutare l’amministratore
a configurare rapidamente cfengine per la gestione di un gruppo di sistemi distribuiti,
oppure per configurarlo come servizio ad alta disponibilità di
un cluster Serviceguard, è disponibile una procedura guidata
di sincronizzazione della configurazione (csync_wizard). L’amministratore per prima cosa definisce un sistema
centrale, oppure un cluster Serviceguard, in modo che agisca da
server master di configurazione o da server dei criteri. Configuration
Synchronization Wizard (csync_wizard) è un front-end di uso intuitivo per la procedura iniziale
di configurazione. Questo sistema centrale ospiterà il
file principale dei criteri - ad esempio cfagent.conf - che definisce i criteri di configurazione
desiderati, ed anche le copie di riferimento, o copie principali,
dei file che dovranno essere distribuiti nei client amministrati. Ogni client amministrato copia i file principali dei criteri
dal server centrale di configurazione e valuta la propria condizione
corrente rispetto a quella definita nel file dei criteri. Qualsiasi
differenza provocherà l’applicazione delle regole
di configurazione, in modo da sincronizzare il client. L’amministratore
può avviare le operazioni di sincronizzazione nei client amministrati
in due modi, con un’operazione attiva oppure con una passiva. Utilizzando
il comando cfrun (per ulteriori informazioni vedere la manpage cfrun(1))
dal server master di configurazione, l’amministratore potrà forzare - “spingere” - le
modifiche. cfrun legge il file cfrun.hosts per stabilire un elenco di client amministrati. Quindi
esegue il comando cfagent in ogni client amministrato per eseguire la sincronizzazione.
Le operazioni attive sono in realtà una richiesta ai client
amministrati di eseguire immediatamente un’operazione passiva. Le operazioni passive - di “traino” - sono
eseguite utilizzando cron oppure l’analogo daemon cfexecd di cfengine. Entrambe le tecniche eseguono ad intervalli
prefissati il comando cfagent, in modo da eseguire la sincronizzazione della configurazione
avviata dal client. L’amministratore definisce quale intervallo è idoneo
per ogni gruppo di client amministrati. Ad esempio, ogni cinque
minuti, ogni ora, oppure una volta al giorno. L’amministratore
può inoltre eseguire direttamente cfagent per eseguire una sincronizzazione a richiesta.
Comandi
e daemon di cfenginePer eseguire le operazioni di sincronizzazione della configurazione, cfengine utilizza vari daemon e comandi. L’elenco seguente
descrive i componenti principali di cfengine. cfagent - il comando cfagent è l’agente principale di cfengine. È eseguito
in ogni client amministrato, e si avvia da sé utilizzando
il file update.conf, che descrive il gruppo di file da trasferire dal server master
al client amministrato locale. I file trasferiti comprendono quello
principale dei criteri, cfagent.conf, e qualsiasi file dei criteri correlato. Nell’implementazione
DSAU, cfagent.conf importa il file cf.main, che contiene esempi di molte funzionalità di cfengine. Dopo il trasferimento dei file di configurazione, cfagent valuta le istruzioni di configurazione in essi contenute.
Nel caso che la configurazione corrente del sistema client si discosti
da quella desiderata, cfagent eseguirà le azioni definite per riportare il
client nella condizione idonea. cfservd - il daemon cfservd ha due ruoli: cfservd è eseguito nel server master di configurazione
ed è il punto di smistamento per le richieste di trasferimento
file provenienti dai client amministrati. Nei client, cfagent contatta cfservd nel server master e richiede le copie dei file principali
dei criteri e le copie di qualsiasi file di riferimento che sia
necessario per le operazioni di sincronizzazione della configurazione.
Il comando cfservd principale è responsabile dell’autenticazione dei
client remoti, tramite un meccanismo di scambio di chiavi pubblica/privata,
e dell’eventuale crittografia dei file trasferiti verso
i client amministrati. cfservd è facoltativamente in grado di essere eseguito
in ogni client amministrato, per elaborare le richieste di cfrun.
Il comando cfrun consente all’amministratore di imporre
le modifiche ai client amministrati, invece che attendere che essi
si sincronizzino nell’intervallo di tempo definito nel
client. Il comando cfrun deve essere eseguito dal server master di configurazione.
Esso contatta ogni client amministrato elencato nel file cfrun.hosts e si connette a cfservd del client amministrato, richiedendo
a cfagent di eseguire l’operazione di sincronizzazione. cfservd è configurato con cfservd.conf ed avviato con /sbin/init.d/cfservd.
cfexecd - cfexecd è uno strumento di pianificazione e di segnalazione.
Nel caso l’amministratore utilizzi cron per eseguire la sincronizzazione
ad intervalli prefissati, cfexecd è il comando situato nel
file crontab per il wrapping dell’esecuzione di cfagent. Memorizza l’output dell’esecuzione
di cfagent nella relativa directory - per i dettagli, vedere cfagent.conf - ed invia facoltativamente dei messaggi email. cfexecd ha delle proprie funzionalità analoghe a quelle
di cron, basate sulle classi temporali di cfengine. L’amministratore può scegliere di
eseguire cfexecd in modalità daemon e di utilizzarlo per eseguire
cfagent ad intervalli prefissati al posto di cron. L’impostazione
predefinita è di eseguire cfagent ogni ora. Dopo avere iniziato
ad usare cfengine, risulterà più facile che utilizzare cron. cfrun - il comando cfrun contatta i client amministrati richiedendo loro di eseguire
immediatamente la sincronizzazione. In particolare, si connette
al comando opzionale cfservd in ogni client amministrato, che a sua volta esegue cfagent.
La Figura 3-1, “Panoramica di cfengine” mostra
le relazioni tra i comandi ed i daemon di cfengine, con un esempio dell’uso di cfrun da parte dell’amministratore. Le linee tratteggiate
nel diagramma indicano le sequenze di chiamata (ad esempio, A chiama
B). Le linee continue indicano la lettura dei dati dai file di configurazione. L’amministratore ha eseguito l’accesso
nel server master di sincronizzazione della configurazione ed effettua
una modifica da distribuire ai client amministrati, utilizzando
il comando cfrun. cfrun controlla il file cfrun.hosts per l’elenco dei client amministrati. Il server
master può essere client di se stesso. In questo diagramma,
ci sono due client, il server master ed un client remoto. cfrun contatta cfservd in ogni client amministrato, che a sua volta esegue cfagent. cfagent per prima cosa controlla il server master per una copia aggiornata
del file update.conf e, se necessario, lo trasferisce nel client. Nel caso che il server master sia un sistema indipendente,
per impostazione predefinita la copia principale di update.conf si troverà in /var/opt/dsau/cfengine_master/inputs/. Le copie principali degli altri file di configurazione,
come cfagent.conf, cfservd.conf e cfrun.hosts, si troveranno anch’esse qui. Nel caso che
il server master sia un cluster Serviceguard, i file di configurazione
principali si troveranno nel punto di montaggio associato al pacchetto.
Ad esempio, se il nome di questo punto di montaggio è csync,
il percorso sarà /csync/dsau/cfengine_master/inputs. Durante la copia dei file di configurazione nel
sistema locale, cfagent li collocherà in /var/opt/dsau/cfengine/inputs sia per i sistemi indipendenti sia per i cluster. Per
prima cosa, cfagent esaminerà il contenuto di update.conf, per aggiornare - se necessario - il
file binario di cfengine eventualmente modificato, ed ottiene la più recente
versione de file dei criteri - cfagent.conf - e dei file relativi. cfagent esaminerà quindi cfagent.conf per accertare se il client si trova nella condizione
desiderata. In caso di differenze, cfagent eseguirà le azioni definite per correggere la
configurazione del client.
Modelli
di attuazione del server master di cfengineIl server master di cfengine può essere un sistema HP-UX indipendente che
serve dei gruppi di client distribuiti. I client stessi possono
essere dei sistemi indipendenti, oppure membri di un cluster Serviceguard.
Nel caso si stia già utilizzando un server di amministrazione
centrale Systems Insight Manager, si ha a disposizione un sistema
ideale da utilizzare come server master di cfengine. I server principali possono anche agire da client, e
le operazioni di sincronizzazione possono essere eseguite in questi sistemi
così come nei client remoti. Nel caso si gestisca dei cluster Serviceguard, sarà possibile
utilizzare cfengine esclusivamente per la sincronizzazione dei membri
all’interno di un singolo cluster. In questa configurazione, cfservd è configurato come pacchetto per l’alta
disponibilità, ma gli unici client di cfengine sono i membri
stessi del cluster. Il nome DNS o indirizzo IP del pacchetto è quello
del server master di cfengine. Oltre a fornire la sincronizzazione della configurazione come
servizio interno al cluster, un’altra configurazione di
Serviceguard è quella in cui il cluster fornisce la sincronizzazione
della configurazione ad alta disponibilità per gruppi di
sistemi client remoti. Questi client possono essere sistemi indipendenti
oppure cluster Serviceguard. Il cluster che fornisce il servizio
cfengine può essere un client di se stesso e sfruttare
le funzionalità di sincronizzazione della configurazione
di cfengine. Una configurazione possibile anche se inconsueta è di
avere un membro fisso di un cluster Serviceguard che agisca come
server master ma senza che sia configurato alcun pacchetto, in modo
che cfservd non sia ad alta disponibilità. Questa configurazione è valida
ma non è consigliata. Configurazione
di cfengine |  |
Le sezioni seguenti
forniscono le istruzioni dettagliate per impostare un server master
di sincronizzazione della configurazione e dei suoi client. Il modo
più rapido per iniziare è utilizzare la procedura
Configuration Synchronization Wizard (csync_wizard), descritta oltre. È anche descritta la configurazione
completamente manuale. Uso di
Configuration Synchronization WizardLa procedura csync_wizard (vedere csync_wizard(1)) automatizza le operazioni
di impostazione di un server master di sincronizzazione della configurazione
e dei suoi client amministrati. Supporta l’impostazione
di un sistema indipendente oppure di un cluster Serviceguard come
server master. La procedura guidata configura tutti i client amministrati
in modo da eseguire cfservd, per consentire l’utilizzo di cfrun (vedere cfrun(8))
nel server master. Per i dettagli, vedere oltre le relative sezioni. Uso
della procedura guidata per la configurazione di un server di sincronizzazione
indipendentePer configurare un server di sincronizzazione per un sistema
indipendente, eseguire csync_wizard(1) nel sistema indipendente
che si desidera configurare come server master di sincronizzazione: # /opt/dsau/sbin/csync_wizard La procedura guidata mostrerà la seguente schermata
introduttiva: Querying the system <nome host locale> for current status, one moment... This Configuration Synchronization Wizard helps you set up the Configuration Engine (cfengine) environment. Cfengine is a powerful tool for performing policy-based management for groups of systems and cluster environments. It is a client/server based utility. A standalone system or Serviceguard cluster can be configured as the cfengine ‘master’. The master contains the configuration description and configuration files that will be used by all the clients. Clients copy the configuration description from the master and apply it to themselves. The configuration description supports a rich set of management actions such as copying configuration files from the master to the client, performing edits to files, checking file ownerships, permissions, and checksums, executing shell commands, checking for processes, etc. For a detailed description of the cfengine management actions, please refer to cfengine man page. This wizard will help you set up this system as a cfengine master or to add or remove a cfengine client, and to perform the required security setup. Press ‘Return’ to continue... Premere INVIO per proseguire e scegliere la voce 1 nel menu
in basso per configurare un server master: Configuration Synchronization Wizard Menu ========================================= (1) Set up a cfengine master server (2) Add a client (3) Remove a client (4) Key management for cfengine users (9) Exit Enter choice: 1 The cfengine master server is being configured on: <nome host locale> La procedura guidata chiederà quindi se si desidera
anche configurare i client amministrati subito dopo avere configurato
il server. In questo esempio, la risposta è no. I client
amministrati saranno aggiunti in seguito. You can optionally specify additional remote clients to manage at this time. If you are running in an HA environment, you do not need to specify the cluster members. Would you like to manage clients? [N]: n La procedura guidata procederà nella configurazione
del sistema come server master: ******* WARNING!!!! ******** To protect against possible corruption of sensitive configuration files, control-c has been disabled for the remainder of this configuration. Configuration of the cfengine master server is starting. Verifying the master has an entry in the /etc/hosts file on each client... Keys are being created... Keys have been created, now distributing.... Starting cfengine on the master and any pertinent client machines. This may take a few minutes.... Terminata la configurazione, la procedura guidata presenterà la
seguente schermata di riepilogo, che indirizzerà l’amministratore
al file principale dei criteri, /var/opt/dsau/cfengine_master/inputs/cf.main, ed al file delle risposte registrate per questa esecuzione
della procedura guidata. The Configuration Synchronization Wizard has completed the configuration of cfengine: - The master configuration description template is here: </var/opt/dsau/cfengine_master/inputs/cf.main> This default template has examples of typical configuration synchronization actions performed in cfengine. For example, synchronizing critical files such as /etc/hosts, package scripts, etc. All the actions in the template are disabled by default (commented out). Uncomment the lines corresponding to the desired synchronization actions for this configuration. See the cfengine reference documentation for a description of additional cfengine features: /opt/dsau/doc/cfengine/ Press ‘Return’ to continue... The cfengine environment has been created with Master Host: <nome host locale> and members: Quando si configura un server master ma non si aggiungono
dei client amministrati durante l’operazione, i membri - l’elenco
dei client amministrati - non saranno presenti, come mostrato
nell’esempio in alto. A file recording the answers for this run of the Configuration Synchronization Wizard is stored here... /var/opt/dsau/cfengine/tmpdir/csync_wizard_input.txt This configuration can be reestablished by issuing the command: /opt/dsau/sbin/csync_wizard \ -f /var/opt/dsau/cfengine/tmpdir/csync_wizard_input.txt Uso della
procedura guidata per la configurazione di un cluster Serviceguard
come server di sincronizzazionePer configurare un server di sincronizzazione in un cluster
Serviceguard, sono possibili due scelte: Creare un pacchetto
Serviceguard per il servizio di configurazione in modo da garantire
l’alta disponibilità. Configurazione di un singolo
membro del cluster come se fosse un sistema indipendente. Il servizio
di sincronizzazione della configurazione non sarà ad alta
disponibilità, ed inoltre questa configurazione non funzionerà correttamente
con le funzionalità d’automazione di Serviceguard
trattate nella sezione “Funzionalità d’automazione
di Serviceguard” e non è quindi consigliata.
Questa sezione tratta l’uso della procedura guidata
per impostare un servizio di sincronizzazione della configurazione
ad alta disponibilità.  |  |  |  |  | NOTA: Accertarsi che il valore di MAX_CONFIGURED_PACKAGES
del cluster sia in grado di accogliere il pacchetto aggiuntivo.
Per ulteriori informazioni su questa impostazione, consultare il
manuale Managing Serviceguard, che fa parte
della documentazione di Serviceguard. Inoltre, prima di eseguire
la procedura guidata, tutti i membri correnti del cluster devono
essere operativi. |  |  |  |  |
Iniziare eseguendo Configuration Synchronization Wizard, csync_wizard(1): # /opt/dsau/sbin/csync_wizard Querying the system <nome host locale> for current status, one moment... This Configuration Synchronization Wizard helps you set up the Configuration Engine (cfengine) environment. Cfengine is a powerful tool for performing policy-based management for groups of systems and cluster environments. It is a client/server based utility. A standalone system or Serviceguard cluster can be configured as the cfengine ‘master’. The master contains the configuration description and configuration files that will be used by all the clients. Clients copy the configuration description from the master and apply it to themselves. The configuration description supports a rich set of management actions such as copying configuration files from the master to the client, performing edits to files, checking file ownerships, permissions, and checksums, executing shell commands, checking for processes, etc. For a detailed description of the cfengine management actions, please refer to cfengine man page. This wizard will help you set up this system as a cfengine master or to add or remove a cfengine client, and to perform the required security setup. Press ‘Return’ to continue... Premere INVIO per proseguire e scegliere la voce 1 nel menu
in basso per configurare un server master: Configuration Synchronization Wizard Menu ========================================= (1) Set up a cfengine master server (2) Add a client (3) Remove a client (4) Key management for cfengine users (9) Exit Enter choice: 1 Dopo avere scelto 1 ed avere premuto INVIO, la procedura guidata mostrerà il
testo seguente: This system is a member of a Serviceguard cluster. The cfengine configuration will be defined as a package for high availability unless you answer no to the below question. If you answer no, for the purposes of cfengine control, this machine will be treated as a single machine without failover capability for cfengine. If you accept the default answer of ‘HA’ to the below question, cfengine will be configured as a highly available Serviceguard package. This will ensure that your cfengine master server is available as long as one of the cluster members that can run the package is also available. You will need a free IP address for this package and you need to configure storage for the package before proceeding. For details on creating highly available file systems, please refer to ‘Creating a Storage Infrastructure’ chapters of the Managing Serviceguard documentation. Will this master server be Highly Available (HA) [Y]: La procedura guidata proporrà “csync” come
nome del pacchetto per la sincronizzazione della configurazione.
Questo specifico nome del pacchetto è obbligatorio. Prima
di proseguire o iniziare la procedura guidata, deve essere impostata
la configurazione d’archiviazione LVM e della rete per
il pacchetto. Tutti i membri del cluster devono essere in funzione
e disponibili. Per i dettagli, consultare il volume Managing Serviceguard,
in “Building an HA Cluster Configuration”, “Creating
a Storage Infrastructure with LVM.”  |  |  |  |  | NOTA: La procedura guidata supporta solamente la creazione
di pacchetti basati sui gruppi di volumi LVM. Utilizzando CFS o
VxVM, sarà necessaria la configurazione manuale. Per i
dettagli sulla configurazione manuale del pacchetto csync, vedere la sezione sulla configurazione manuale di un cluster
Serviceguard. |  |  |  |  |
La procedura guidata farà le seguenti richieste,
le quali dovrebbero essere tutte già configurate: Nome del gruppo
di volumi LVM (ad esempio, vgcsync) Volume logico nel gruppo
di volumi (ad esempio, /dev/vgcsync/lvol1) Il punto di montaggio del
filesystem (ad esempio, /csync) Le opzioni di montaggio
del filesystem (ad esempio, -o rw,largefiles).
Le opzioni di montaggio sono utilizzate alla lettera nel campo FS_MOUNT_OPT[0]
dello script di controllo del pacchetto Service. Le opzioni di montaggio
devono essere coerenti con il filesystem creato nel volume logico.
Ad esempio, se il filesystem è stato creato con il supporto
per i file di grande dimensione, per il punto di montaggio deve
essere specificata l’opzione “largefiles”. Il tipo di filesystem (ad
esempio, VxFS) L’indirizzo IP del
pacchetto. Questo dovrebbe anche essere un nome DNS registrato,
in modo che la sincronizzazione della configurazione sia di facile
impostazione nei sistemi client. La sottorete del pacchetto.
Per accertare la sottorete, utilizzare netstat -i.
Configurata l’infrastruttura d’archiviazione
ed ottenuto l’indirizzo IP, premere INVIO per accedere
alla risposta predefinita “yes” e procedere con
la creazione del pacchetto. La procedura guidata richiederà le informazioni
del pacchetto: Configuring the csync Serviceguard package for a highly available cfengine master. The cfengine master server is being configured as a HA Serviceguard Package on this cluster. Please provide the following information for the package: Enter the Volume group? []: vgcsync You need to enter a fully qualified Logical Volume, for example: /dev/vgname/lvol1 Enter the fully qualified Logical Volume? []: /dev/vgcsync/lvol1 Enter the Filesystem (Mount Point)? []: /csync Enter the Mount Options? [-o rw,largefiles]:<INVIO> Enter the Filesystem Type? [vxfs]: <INVIO> Enter the IP address? []: 12.345.6.78 Enter the Subnet? []: 12.345.7.8 La procedura guidata chiederà ora se si desidera
gestire anche dei client amministrati remoti, sistemi cioè che
si trovano all’esterno del cluster. La procedura guidata
configurerà automaticamente i membri correnti del cluster.
Per questo motivo tutti i membri devono essere in funzione ed accessibili
quando si esegue la procedura guidata. Nell’esempio mostrato in
basso, l’amministratore ha scelto “no”,
per cui inizialmente saranno configurati solo i membri del cluster. I client remoti potranno essere facilmente aggiunti in seguito
con la procedura guidata. Non è necessario utilizzare la
procedura guidata per l’aggiunta i nuovi client quando
si aggiungono altri membri al cluster. Per i dettagli, consultare
la sezione sulle funzionalità d’automazione di Serviceguard. You can optionally specify additional remote clients to manage at this time. If you are running in an HA environment, you do not need to specify the cluster members. Would you like to manage clients? [N]: <INVIO> La procedura guidata ora dispone di tutti i dati necessari
per configurare il cluster e procede a farlo: ******* WARNING!!!! ******** To protect against possible corruption of sensitive configuration files, control-c has been disabled for the remainder of this configuration. Configuring the ‘csync’ Serviceguard package. Applying the ‘csync’ Serviceguard package configuration file, this will take a moment. Starting the ‘csync’ Serviceguard package, this will take a few moments... The ‘csync’ Serviceguard package has been started on <nome host locale>. Configuration of the cfengine master server is starting. Verifying the master has an entry in the /etc/hosts file on each client... Keys are being created... Keys have been created, now distributing.... Starting cfengine on the master and any pertinent client machines. This may take a few minutes.... Terminata la configurazione, la procedura guidata presenterà la
seguente schermata di riepilogo, che indirizzerà l’amministratore
al file principale dei criteri, punto_montaggio/cfengine_master/inputs/cf.main, ed al file delle risposte registrate per questa esecuzione
della procedura guidata. Il file dei criteri si trova nel filesystem
appena configurato associato con il pacchetto. In questo esempio,
l’amministratore ha scelto di montare il filesystem per
il pacchetto come /csync.Nel caso che l’amministratore
in precedenza abbia configurato cfengine, prima di sovrascrivere dei file di configurazione esistenti,
la procedura guidata creerà dei backup nella directory: /var/opt/dsau/cfengine/backups I file nel livello superiore di questa directory sono i backup
più recenti. Qualsiasi configurazione anteriore sarà salvata
in sottodirectory di nome v_data_ora. The Configuration Synchronization Wizard has completed the configuration of cfengine: - The master configuration description template is here: </csync/dsau/cfengine_master/inputs/cf.main> This default template has examples of typical configuration synchronization actions performed in a cluster. For example, synchronizing critical files such as /etc/hosts, package scripts, etc. All the actions in the template are disabled by default (commented out). Uncomment the lines corresponding to the desired synchronization actions for this cluster. See the cfengine reference documentation for a description of additional cfengine features: /opt/dsau/doc/cfengine/ Press ‘Return’ to continue... The cfengine environment has been created with Master Host: <nome host pacchetto> and members: <membro 1 del cluster>, <membro 2 del cluster>, ... A file recording the answers for this run of the Configuration Synchronization Wizard is stored here... /var/opt/dsau/cfengine/tmpdir/csync_wizard_input.txt This configuration can be reestablished by issuing the command: /opt/dsau/sbin/csync_wizard \ -f /var/opt/dsau/cfengine/tmpdir/csync_wizard_input.txt Note sulla
configurazione del clusterQuesta sezione descrive in dettaglio la configurazione ad
alta disponibilità di cfengine in un cluster Serviceguard. Per ulteriori informazioni
sui ruoli dei vari comandi e daemon di cfengine, consultare “Comandi
e daemon di cfengine”. Il pacchetto Serviceguard garantisce che il daemon cfservd di cfengine rimanga ad alta disponibilità. I file di configurazione
di cfengine, update.conf e cfagent.conf, definiscono il server master di sincronizzazione della
configurazione in modo che sia il nome DNS registrato per l’indirizzo
IP riallocabile del pacchetto. Quando i client amministrati eseguono
cfagent (vedere cfagent(8)), cfagent si connette a cfservd nel nodo adottivo del pacchetto. I membri del cluster
stessi sono perciò sono tutti client amministrati. Il membro
che ospita il pacchetto agisce inoltre come server master per i
file dei criteri. All’avvio del cluster, ogni membro avvierà un
daemon cfservd client. Si tratta del daemon cfservd che risponde alle richieste di cfrun. Quando è avviato il pacchetto in un membro,
quel daemon cfservd avrà l’accesso al filesystem del pacchetto
e diventerà il daemon cfservd principale, che servirà i file dei criteri a
tutti i client amministrati. Questo daemon cfservd è controllato dal pacchetto. In caso di errore
di cfservd, il pacchetto tenterà riavviarlo in un altro
membro. Il daemon cfservd di quel membro diventerà il daemon cfservd principale. Arrestando il pacchetto non si provocherà l’arresto
del daemon cfservd nel membro adottivo, dato che ci si attende che esso
sia presente per rispondere a future richieste di cfrun. Inoltre, diversamente da altri servizi ad alta disponibilità,
se il pacchetto csync non è in esecuzione o non è disponibile,
non ci saranno conseguenze negative per i client remoti. I client
continueranno a funzionare con la propria configurazione correntemente
definita. Per distribuire le nuove istruzioni di configurazione
ai client amministrati, l’amministratore dovrebbe accertarsi
che il pacchetto sia in esecuzione ed operativo. La procedura guidata automatizza la distribuzione delle chiavi
di cfengine in tutti i membri del cluster. Per la descrizione dettagliata
della procedura di distribuzione delle chiavi, consultare “Note
sulla sicurezza”. Funzionalità d’automazione
di ServiceguardDistributed Systems Administration Utilities richiede Serviceguard
11.17 o successiva. Con Serviceguard 11.17 o successiva, gli strumenti
di sincronizzazione della configurazione eseguiranno automaticamente
le opportune azioni di configurazione quando si aggiungono o rimuovono
membri dal cluster. In particolare: Quando
si aggiunge un membro al cluster, il nuovo membro sarà configurato
automaticamente per partecipare alla sincronizzazione della configurazione.
Nel nuovo membro avverranno automaticamente le azioni di configurazione
seguenti: Sarà modificato
etc/rc.config.d/cfservd per impostare ad 1 il valore di CSYNC_CONFIGURED. Saranno create le chiavi
pubblica e privata di cfengine per il nuovo membro e queste saranno collocate nella
directory /var/opt/dsau/cfengine/ppkeys del membro. Le nuove chiavi di questo membro saranno
inoltre distribuite nella directory /var/opt/dsau/cfengine/ppkeys degli altri membri del cluster. Sarà riempita la
directory /var/opt/dsau/cfengine/inputs del nuovo membro. Nel nuovo membro sarà eseguito
cfservd. I file del pacchetto saranno
copiati nella directory /etc/cmcluster/csync/ del nuovo membro. Sarà eseguita una
sincronizzazione di cfagent nel sistema principale per riempire la sua directory
/var/opt/dsau/cfengine/inputs. Sarà eseguita la
sincronizzazione con cfagent nel client remoto.
Eliminando un membro dal cluster, la chiave pubblica
del membro eliminato sarà rimossa dalla directory /var/opt/dsau/cfengine/ppkeys in tutto il cluster.
L’amministratore è in grado di definire
gruppi o classi di cfengine che enumerano tutti i membri di un dato cluster Serviceguard.
Queste definizioni di classi non saranno aggiornate automaticamente
e, per le modifiche dell’appartenenza al cluster, l’amministratore
dovrà aggiornare manualmente il file cfagent.conf e quelli correlati. Configurazione
di un client di sincronizzazioneÈ possibile utilizzare
Configuration Synchronization Wizard per aggiungere dei client amministrati
alla configurazione esistente di cfengine. Eseguire la procedura
guidata nel server master, non nel sistema
client. Quando un cluster Serviceguard è il server master,
eseguire la procedura guidata nel nodo adottivo del pacchetto csync.
L’aggiunta alla configurazione ad alta disponibilità di
un nuovo membro del cluster sarà eseguita automaticamente.
Per ulteriori informazioni, consultare “Funzionalità d’automazione
di Serviceguard”. Inoltre, per distribuire in sicurezza le chiavi di cfengine,
il client deve essere configurato per l’accesso ssh non
interattivo da parte dell’account di root del server master.
Lo strumento csshsetup (vedere csshsetup(1)) facilita la configurazione
dell’accesso ssh ad un sistema
remoto. Questo strumento è utilizzato negli esempi in basso. Quando i client si trovano nel medesimo dominio DNS del server
master, la procedura guidata al momento è in grado di gestire
solamente dei client. Per le istruzioni su come aggiungere manualmente
dei client nelle configurazioni a domini multipli, consultare “Configurazione
manuale ”. In caso di aggiunta di un cluster Serviceguard come client
amministrato, ogni membro del cluster dovrà essere aggiunto
individualmente. Cominciare eseguendo l’accesso come root al server
master e configurare l’accesso ssh al
sistema remoto: # csshsetup <nome host del client amministrato> Per prima cosa, csshsetup prova l’accesso ssh al
sistema remoto. Nel caso non sia configurato, ssh richiederà la
password del client amministrato. Eseguire Configuration Synchronization Wizard e scegliere
l’opzione 2 per aggiungere un nuovo client: Configuration Synchronization Wizard Menu ========================================= (1) Set up a cfengine master server (2) Add a client (3) Remove a client (4) Key management for cfengine users (9) Exit Enter choice: 2 Alla richiesta, digitare il nome del client da aggiungere: This option will configure additional clients to the cfengine domain. Enter the name of the client to add: <nuovo client> La procedura guidata proseguirà quindi a configurare
il client e segnalerà il procedere dell’operazione: Verifying the master has an entry in the /etc/hosts file on each client... Keys are being created... Keys have been created, now distributing.... The client <nuovo client> has been added to the cfengine domain La procedura guidata configura ogni nuovo client in modo da
eseguire cfservd, affinché sia in grado di rispondere
alle richieste di cfrun ed aggiunge i client al file cfrun.hosts del server master. La sezione seguente descrive le operazioni necessarie per
configurare manualmente cfengine nei server principali di sincronizzazione della configurazione
o nei client amministrati. È in genere più semplice cominciare
usando csync_wizard (vedere csync_wizard(1m)) e modificare quindi la
configurazione risultante, invece che partire da zero. Questo vale
particolarmente per i cluster Serviceguard, in cui procedura guidata è utile
per configurare il pacchetto e si fa carico di distribuire i file di
configurazione corretti in tutti i membri del cluster. Eseguendo la configurazione manuale, è possibile
creare configurazioni che non potranno essere gestite successivamente
da csync_wizard. Ad esempio, la procedura guidata supporta solamente
configurazioni a singolo dominio DNS. Eseguendo manualmente una
configurazione a domini multipli, non sarà possibile utilizzare
la procedura guidata per aggiungere e rimuovere client.  |  |  |  |  | NOTA: È possibile utilizzare csshsetup per configurare una relazione di fiducia tra il server
master ed i client amministrati. Questo consentirà di utilizzare
i comandi per la distribuzione dei comandi come cexec e ccp (vedere cexec(1) e ccp(1)). L’uso di questi
comandi può semplificare le operazioni di configurazione
descritte oltre, quando sarà necessario distribuire i file
nei client amministrati. |  |  |  |  |
Configurazione
manuale di un server di sincronizzazione indipendentePer configurare un sistema indipendente come server master
per cfengine, eseguire una sola volta le seguenti operazioni: Cominciare creando le copie principali
dei file di configurazione di cfengine. Questi file si trovano in una directory nota, e sono distribuiti
in ogni client amministrato. La directory predefinita è /var/opt/dsau/cfengine_master/inputs, riportata nei modelli predefiniti. Cominciare creando
la directory: # mkdir -p /var/opt/dsau/cfengine_master/inputs Copiare i file dei modelli predefiniti nelle directory
seguenti: # cd /var/opt/dsau/cfengine_master/inputs # cp /opt/dsau/share/cfengine/templates/cf.main.template cf.main # cp /opt/dsau/share/cfengine/templates/update.conf.template update.conf # cp /opt/dsau/share/cfengine/templates/cfagent.conf.template cfagent.conf # cp /opt/dsau/share/cfengine/templates/cfrun.hosts.template cfrun.hosts # cp /opt/dsau/share/cfengine/templates/cfservd.conf.template cfservd.conf |
Quindi, modificare update.conf. Questo file è in un formato simile al principale
file di configurazione di cfengine, cfagent.conf. È utilizzato per trasferire ed aggiornare
nei client amministrati i file binari di cfengine e qualsiasi file di definizione della configurazione, ad
esempio, cfagent.conf. È molto importante evitare errori e semplificare
al massimo questo file. Gli eventuali errori in questo file richiederanno
di copiare manualmente una nuova versione in ogni client amministrato. Il file contiene dei token, nella forma <%nome_token%>, che saranno sostituiti da csync_wizard con le risposte date dall’amministratore alle
domande. Sostituire i token nel modo seguente: Sostituire
<%HOST_NAMER%> con il nome host non qualificato del server master. Sostituire <%DOMAIN_NAMER%> con il nome di dominio del server master. Ad esempio: host_name = ( “nome_server_principale” ) domain_name = ( “abc.xyz.com” ) |
Questo modello update.conf presume che il server master ed i suoi client si trovino
tutti in un singolo dominio DNS. Nel caso il proprio server master
dovesse avere dei client amministrati in domini DNS multipli, modificare update.conf nel modo seguente: Sostituire <%HOST_NAMER%> con il nome host qualificato completo del server
master. Eliminare la variabile
<domain_name>. Sostituire la riga “domain = ( “${nome_dominio}” )” con: domain = ( ExecResult(/sbin/awk ‘/domain/ {print $2}’ /etc/resolv.conf) ) |
Questo imposta in modo adeguato la variabile domain nel lato client.
Questa tecnica presume che in ogni client amministrato /etc/resolv.conf sia stato correttamente configurato. Questa medesima modifica alla variabile domain dovrà anche essere
eseguita in cf.main ed in cfservd.conf. Vedere le operazioni successive. Utilizzare il flag cfagent -p (oppure --parse-only) per controllare la sintassi di update.conf.
Distribuire la copia principale
di update.conf in ogni client amministrato. Questa operazione è descritta
in “Configurazione
di un client amministrato di sincronizzazione”. Creare le chiavi di protezione del server master.
Per autenticare i client remoti, cfengine utilizza lo scambio delle chiavi pubblica e privata.
Nel server master, ed in tutti i client amministrati, sarà creata
una coppia di chiavi pubblica e privata. La chiave pubblica di ogni
client amministrato sarà copiata nel server master e da
questo nei client amministrati. È importante scambiare
le chiavi in modo sicuro, utilizzando uno strumento come secure
copy (vedere scp(1)), oppure utilizzando un
nastro o un CD-ROM. Iniziare creando le chiavi per il server master: # /opt/dsau/sbin/cfkey # cd /var/opt/cfengine/ppkeys Ciò creerà i file localhost.pub e localhost.priv. Copiare la chiave pubblica in root-indirizzo_IP_server_principale.pub. Ad esempio, se l’indirizzo IP del sistema è 10.0.0.5,
utilizzare questo comando: # cp localhost.pub root-10.0.0.5.pub Per i dettagli su come copiare le chiavi dei client in questo
server master, vedere “Configurazione
di un client amministrato di sincronizzazione”. Nel server master, configurare
il daemon cfservd per l’avvio assieme al sistema. Modificare
/etc/rc.config.d/cfservd e cambiare la riga CSYNC_CONFIGURED=0 in CSYNC_CONFIGURED=1. Facoltativamente, nel caso si desideri “spingere” le
modifiche nei client amministrati utilizzando cfrun, ripetere questa modifica in tutti i client amministrati. cfrun richiede che i client amministrati siano elencati nel
file cfrun.hosts. Nella configurazione predefinita, questo file si trova
in /var/opt/dsau/cfengine_master/inputs. Modificarlo ed aggiungere il nome host di ogni client
amministrato, uno per riga. Conviene fare in modo che tutti i i
nomi host siano completamente qualificati. Utilizzando i nomi host
completamente qualificati, “domain = riga” non è necessaria e può essere
eliminata. Nel caso si usino nomi host non qualificati, cercare
la riga “domain = <%DOMAIN_NAMER%>” e sostituire il token con il dominio
DNS dei sistemi client. In questo modo, i client saranno solamente
i membri di tale singolo dominio. Il file /var/opt/dsau/cfengine_master/inputs/cfagent.conf è quello principale dei criteri. Il file predefinito cfagent.conf comprende il modello predefinito cf.main, che è un
file modello con commenti contenente esempi di azioni comuni di
sincronizzazione, sia per sistemi indipendenti sia per cluster Serviceguard.
Il file cf.main contiene i medesimi token <%HOST_NAMER%> e <%DOMAIN_NAMER%> di update.conf. Eseguire le medesime modifiche descritte prima al punto
3. Questo file predefinito cf.main non esegue azioni di amministrazione. Tutte le righe
relative alle azioni sono dei commenti. Si tratta di un punto di
partenza per la creazione di un gruppo personalizzato di criteri
per cfengine e di azioni per i propri client amministrati. Il manuale
di cfengine, che documenta la sintassi e tutte le azioni di amministrazione
definite in questo file, si trova in /opt/dsau/doc/cfengine. Altri esempi di file di configurazione per cfengine, che sono presenti nella distribuzione open source di cfengine, si trovano in /opt/dsau/share/cfengine/examples. Il file /var/opt/dsau/cfengine_master/inputs/cfservd.conf controlla quali client amministrati avranno accesso
ai file gestiti da cfservd nel server master. Eseguire le seguenti modifiche a cfservd.conf. Eliminare interamente la riga seguente: domain_name = ( “<%DOMAIN_NAMER%>” ) Modificare la riga domain = ( “${domain_name}” ) nel modo seguente: domain = ( ExecResult(/sbin/awk ‘/domain/ {print $2}’ /etc/resolv.conf) ) La definizione “admit:” controlla quali client remoti avranno accesso
ai file nel server. Modificare ogni occorrenza di “*.${domain_name}” con l’elenco di domini DNS
dei client amministrati, separati da un spazio. Ad esempio: /var/opt/dsau/cfengine_master/master_files *.abc.xyz.com *.cde.xyz.com Questo esempio consente a tutti gli host nei domini elencati
di accedere ai file nel server master. È inoltre possibile
specificare elenchi di determinati host, intervalli di indirizzi
IP, ecc. Per ulteriori informazioni, consultare il manuale di cfengine.
Nel server master, eseguire cfservd: # /sbin/init.d/cfservd start Ciò dovrà essere ripetuto per ogni client
amministrato. Provare la configurazione eseguendo le operazioni
seguenti: In un client amministrato, utilizzare
il comando: # cfagent --no-lock --verbose --no-splay L’output dettagliato mostrerà il client
mentre controlla la presenza di copie aggiornate dei file principali
dei criteri, mentre li copia in /var/opt/cfengine/inputs, se necessario, e mentre esegue il contenuto di cfagent.conf/cf.main. Nel server master, provare il comando cfrun: # cfrun -- --inform La sintassi --inform indica a cfagent eseguito remotamente di utilizzare il flag --inform,
che darà origine a dei messaggi per tutte le modifiche
eseguite da cfengine nel sistema. Per ulteriori informazioni, può essere
utile --verbose: # cfrun -v -- --verbose L’opzione -v indica a cfrun stesso di essere più dettagliato e l’opzione --verbose sarà passata
a cfagent eseguito remotamente.
Per ulteriori informazioni sulla risoluzione dei problemi,
consultare “Risoluzione
dei problemi di cfengine”.
Configurazione
manuale di un cluster Serviceguard come server di sincronizzazione La configurazione
di cfengine per l’alta disponibilità in un cluster
Serviceguard è analoga a quella di una macchina indipendente,
descritta nella sezione “Uso
della procedura guidata per la configurazione di un server di sincronizzazione
indipendente”. Le differenze principali sono la creazione del pacchetto
di Serviceguard ed il meccanismo utilizzato per la distribuzione
delle chiavi di protezione di cfengine. Seguire tutte le operazioni
descritte oltre. Preparazione
iniziale del pacchetto di Serviceguard Iniziare
ottenendo un indirizzo IP per il pacchetto. Questo indirizzo è in
genere registrato in un DNS, per semplificare la gestione di client
remoti. Utilizzando cfengine solamente all’interno di un
cluster, sarà sufficiente assicurarsi che l’indirizzo sia
aggiunto al file /etc/hosts di ogni membro. Quindi, creare l’infrastruttura d’archiviazione
necessaria per il nuovo pacchetto. Le istruzioni per fare ciò sono
documentate nel volume Managing Serviceguard,
in “Building an HA Cluster Configuration”, “Creating
a Storage Infrastructure.” Ad esempio, utilizzando l’infrastruttura
d’archiviazione LVM, saranno necessarie le operazioni seguenti: Creare il gruppo di volumi
(VG) LVM ed i volumi logici (LV), ad esempio, /dev/vgcsync/lvol1. Esportazione ed importazione
dei gruppi di volumi in tutto il cluster. Configurazione dei filesystem
nei volumi logici. Creare il punto di montaggio
del filesystem, ad esempio, /csync, in tutto il cluster.
I modelli predefiniti presumono che si utilizzi un’archiviazione LVM.
Per utilizzare VxVM o altre archiviazioni o filesystem in tutto
il cluster, eseguire le opportune modifiche ai modelli del pacchetto
descritte oltre. Assicurarsi che nel membro corrente il filesystem
per il pacchetto sia montato. Ad esempio, utilizzando LVM eseguire: # vgchange -a e /dev/vgcsync # mount -o rw,largefiles /dev/vgcsync/lvol1 /csync
Personalizzazione iniziale
del file dei criteri Creare una sottodirectory per il file
principale dei criteri e per i file di riferimento. Ad esempio: # mkdir -p /csync/dsau/cfengine_master/master_files Queste directory di esempio sono quelle utilizzate da csync_wizard. Copiare i file dei modelli predefiniti nella directory
principale per gli input: # cd /csync/dsau/cfengine_master/inputs |
# cp /opt/dsau/share/cfengine/templates/cf.main.template cf.main |
# cp /opt/dsau/share/cfengine/templates/update.conf.template update.conf |
# cp /opt/dsau/share/cfengine/templates/cfagent.conf.template cfagent.conf |
# cp /opt/dsau/share/cfengine/templates/cfrun.hosts.template cfrun.hosts |
# cp /opt/dsau/share/cfengine/templates/cfservd.conf.template cfservd.conf |
Modificare update.conf. Questo file è in un formato simile al principale
file di configurazione di cfengine, cfagent.conf. È utilizzato per trasferire ed aggiornare
nei client amministrati i file binari di cfengine e qualsiasi file
di definizione della configurazione, ad esempio, cfagent.conf. È molto importante evitare errori e semplificare
al massimo questo file. Gli eventuali errori in questo file richiederanno
di copiare manualmente una nuova versione in ogni client amministrato. Il
file contiene dei token, nella forma <%nome_token%>, che saranno sostituiti da csync_wizard con le risposte date dall’amministratore alle
domande. Sostituire i token nel modo seguente: Sostituire <%HOST_NAMER%> con
il nome host non qualificato del pacchetto Serviceguard. Sostituire <%DOMAIN_NAMER%> con
il nome di dominio DNS del pacchetto. Ad esempio: host_name = ( “nome-host-pacchetto”) domain_name = ( “abc.xyz.com”) |
Questo update.conf modello presume che il server master ed i suoi client
si trovino tutti in un singolo dominio DNS. Nel caso il proprio
server master dovesse avere dei client amministrati in domini DNS
multipli, modificare update.conf nel modo seguente: Sostituire <%HOST_NAMER%> con
il nome host qualificato completamente del pacchetto Serviceguard. Eliminare la variabile “domain_name”. Sostituire la riga domain = ( “${nome_dominio}” ) con: domain = ( ExecResult(/sbin/awk ‘/domain/ {print $2}’ /etc/resolv.conf) ) |
Questo imposta in modo adeguato la variabile domain nel lato client.
Questa medesima modifica alla variabile domain dovrà anche essere
eseguita in cf.main ed in cfservd.conf. Vedere oltre. Utilizzare il flag -p (--parse-only) di cfagent per controllare la sintassi di update.conf.
Elenco dei client amministrati
in cfrun.hosts cfrun richiede che tutti i client amministrati siano elencati
nel file cfrun.hosts. Dato che ogni membro del cluster è considerato
un client, assicurarsi che ognuno di essi sia elencato in /csync/dsau/cfengine_master/inputs/cfrun.hosts. Modificarlo ed aggiungere il nome host di ogni membro, uno
per riga. Conviene fare in modo che tutti i i nomi host siano completamente qualificati.
Utilizzando i nomi host completamente qualificati, la riga “domain =” non è necessaria e può essere
eliminata. Nel caso si usino nomi host non qualificati, cercare
la riga ““domain = <%DOMAIN_NAMER%>”” e sostituire il token con il
dominio DNS dei membri del cluster. In questo modo, i client saranno
solamente i membri di tale singolo dominio. Modifica del file principale
dei criteri Il file /var/opt/dsau/cfengine_master/inputs/cfagent.conf è quello principale dei criteri. Il file predefinito cfagent.conf comprende il modello predefinito cf.main, un file modello con caratteri di commento, contenente
esempi di azioni comuni di sincronizzazione, sia per sistemi indipendenti
sia per cluster Serviceguard. Modificare cf.main per sostituire i token seguenti: cf.main contiene gli stessi token <%HOST_NAMER%> e <%DOMAIN_NAMER%> di update.conf. Eseguire le medesime modifiche descritte al punto 3
del precedente elenco puntato, “Personalizzazione iniziale
del file dei criteri”. Questo modello predefinito non esegue azioni di amministrazione. Tutte
le righe relative alle azioni sono dei commenti. Contiene molti esempi
specifici per la sincronizzazione dei file un cluster Serviceguard.
Si tratta di un punto di partenza per la creazione di un gruppo
personalizzato di criteri per cfengine e di azioni per il proprio cluster ed altri client amministrati. Il manuale di cfengine, che documenta la sintassi e tutte le azioni di amministrazione
definite in questo file, si trova in /opt/dsau/doc/cfengine. Altri esempi di file di configurazione per cfengine, che sono
presenti nella sua distribuzione open source, si trovano in /opt/dsau/share/cfengine/examples. Modificare il file cfservd.conf Il file /var/opt/dsau/cfengine_master/inputs/cfservd.conf controlla quali client amministrati avranno accesso
ai file gestiti da cfservd nel server master. Eseguire le seguenti modifiche a cfservd.conf. Eliminare interamente la riga seguente: domain_name = ( “<%DOMAIN_NAMER%>” ) Modificare la riga domain = ( “${domain_name}” ) nel modo seguente: domain = ( ExecResult(/sbin/awk ‘/domain/ {print $2}’ /etc/resolv.conf) ) La definizione “admit:” controlla quali client remoti avranno accesso
ai file nel server. Modificare ogni occorrenza di “*.${domain_name}” con l’elenco di domini DNS
dei client amministrati, separati da un spazio. Ad esempio: /var/opt/dsau/cfengine_master/master_files *.abc.xyz.com *.cde.xyz.com Questo esempio consente a tutti gli host nei domini elencati
di accedere ai file nel server master. È inoltre possibile
specificare elenchi di determinati host, intervalli di indirizzi
IP, ecc. Per ulteriori informazioni, consultare il manuale di cfengine.
Distribuire il file principale update.conf in ogni membro del cluster Usare i comandi seguenti: # cd /var/opt/dsau/cfengine/master_files/inputs # ccp update.conf /var/opt/dsau/cfengine/inputs/ cfengine stesso si occuperà di distribuire in tutto il
cluster ed a tutti i client amministrati i file rimanenti. Distribuire le chiavi di
protezione di cfengine Dato che cfengine utilizza un modello di scambio di chiavi pubblica e privata
per la convalida dell’autenticità dei client amministrati,
deve essere configurata una chiave che sia associata all’indirizzo
IP riallocabile del pacchetto. Tale indirizzo sarà quello
che i client remoti vedranno come server master. Poiché ogni
membro del cluster può diventare il nodo adottivo, questa
chiave deve essere identica per tutti i membri del cluster. Il comando
cfkey per cfengine crea una coppia di chiavi pubblica e privata per il sistema
corrente. cfkey crea i file localhost.priv e localhost.pub. cfengine prevede che i nomi delle chiavi utilizzino la convenzione seguente: nome_utente-indirizzo_IP.pub Ad esempio: root-10.0.0.3.pub L’amministratore copierà la chiave localhost.pub
con il mone corretto in base all’indirizzo IP del sistema.
Nel caso di un cluster, per la creazione delle chiavi per tutto
il cluster saranno utilizzate quelle del membro corrente, con le
operazioni seguenti: Usare cfkey per creare la coppia di chiavi pubblica e privata per questo
membro del cluster: # mkdir -p /var/opt/dsau/cfengine/ppkeys # cd /var/opt/dsau/cfengine/ppkeys # /opt/dsau/sbin/cfkey |
Ciò creerà le chiavi di nome localhost.priv
e localhost.pub. La chiave pubblica, localhost.pub sarà quindi copiata in root-indirizzo_IP_pacchetto.pub. Ad esempio, # cp localhost.pub root-10.116.9.74.pub |
dove 10.116.9.74 è l’indirizzo IP riallocabile
del pacchetto csync. Il file localhost.pub di questo membro è sovente utilizzato per la creazione
di chiavi specifiche per ogni membro: # cp localhost.pub root-<indirizzo_IP_membro>.pub # cp localhost.pub root-<indirizzo_IP_membro2>.pub # cp localhost.pub root-<indirizzo_IP_membro3>.pub ... # cp localhost.pub root-<indirizzo_IP_membroN>.pub |
Infine, tutte le chiavi saranno copiate in ogni
membro. # ccp * /var/opt/dsau/cfengine/ppkeys |
Nota: ccp, un comando distribuito, esegue la copia nel cluster, copiando
un comando in tutti i membri del cluster.
Configurazione ed avvio
di cfservd Configurare
il daemon cfservd per l’avvio assieme al sistema. Modificare
/etc/rc.config.d/cfservd e cambiare la riga CSYNC_CONFIGURED=0 in CSYNC_CONFIGURED=1. Distribuire questa modifica nel cluster: # ccp /etc/rc.config.d/cfservd /etc/rc.config.d/cfservd |
Nel server master, eseguire cfservd: # /sbin/init.d/cfservd start |
Ripetere l’operazione per i membri rimanenti
del cluster. Nel caso che il cluster sia stato configurato per l’utilizzo
degli strumenti per la distribuzione dei comandi di DSAU, utilizzare
il seguente comando per avviare il daemon in tutto il cluster: # cexec /sbin/init.d/cfservd start |
Creazione del pacchetto
csync Per creare il pacchetto di sincronizzazione della configurazione, modificare
i file modello predefiniti del pacchetto secondo il caso per il proprio
ambiente Serviceguard. È obbligatorio che il nome del pacchetto
sia csync. In caso contrario, non saranno
possibili le operazioni automatiche di Serviceguard. Per maggiori
informazioni, consultare la sezione “Funzionalità d’automazione
di Serviceguard” Cominciare eseguendo le modifiche descritte oltre. Creare nel cluster la directory per
il pacchetto: # cexec mkdir /etc/cmcluster/csync |
Copiare il file ASCII modello e lo script di controllo
del pacchetto nella directory /etc/cmcluster/cysnc del membro corrente: # cd /etc/cmcluster/csync # cp /opt/dsau/share/serviceguard/templates/csync.conf.template csync.conf # cp /dsau/share/serviceguard/templates/csync.script.template csync # chmod +x csync |
Modificare il file ASCII
di configurazione del pacchetto, csync.conf, per sostituire i token
segnaposto con i valori opportuni. I token sono nella forma
<%nome_token%>. Cercare la riga “SUBNET <%SG_PKG_SUBNET%>” e sostituire il token con il valore di sottorete
del pacchetto csync. Per identificare la
sottorete, utilizzare netstat -i. Modificare lo script di controllo del pacchetto
e sostituire i token segnaposto con i valori opportuni. Nota: il modello predefinito dello script presume che si utilizzi una
configurazione d’archiviazione LVM. Nel caso che si usi VxVM
e/o CFS, consultare la documentazione Managing Serviceguard per
ulteriori informazioni sulla configurazione dei pacchetti utilizzando
queste tecnologie. Sarà necessario rimuovere i commenti
dalle sezioni LVM del modello descritte oltre, e sostituire le opportune
definizioni per VxVM o per CFS. Cercare
la riga “VG[0]=“<%SG_PKG_VOL_GRP%>”” e sostituire il token con il nome del
gruppo di volumi LVM del pacchetto. Ad esempio, VG[0]“vgcsync”. Cercare la riga “LV[0]=“<%SG_PKG_LOG_VOL%>”” e sostituire il token con il nome completo
del volume logico. Ad esempio, LV[0]=“/dev/vgcsync/lvol1”. Cercare la riga “FS[0]=“<%SG_PKG_FS%>”” e sostituire il token con il nome del
punto di montaggio del filesystem creato per questo pacchetto. Ad
esempio, FS[0]=“/csync”. Questo punto di montaggio deve essere stato creato in ogni membro
del cluster come parte della configurazione d’archiviazione
descritta prima. Cercare la riga “FS_MOUNT_OPT[0]=“<%SG_PKG_MNT_OPT%>”” e sostituire il token con le opzioni di
montaggio del filesystem. Ad esempio, FS_MOUNT_OPT[0]=“-o rw,largefiles”. Cercare la riga “FS_TYPE[0]=“<%SG_PKG_FS_TYPE%>”” e sostituire il token con il tipo di filesystem.
Ad esempio, FS_TYPE[0]=“vxfs”. Cercare la riga “FS_UMOUNT_OPT[0]=“<%SG_PKG_FS_UMOUNT_OPT%>”” e sostituire il token con le opzioni di
umount per il filesystem. Questo token può essere rimosso
e questa opzione lasciata in bianco nel caso non vi siano particolari
opzioni per umount. Ad esempio, FS_UMOUNT_OPT[0]=“”. Cercare la riga “FS_FSCK_OPT[0]=“<%SG_PKG_FS_FSCK_OPT%>”” e sostituire il token con le opzioni di
fsck specifiche per il filesystem. come prima, è possibile
eliminare il token e lasciare questa opzione in bianco. Ad esempio,
FS_FSCK_OPT[0]=“”. Cercare la riga “IP[0]=“<%SG_PKG_IP%>””e sostituire il token con l’indirizzo
IP del pacchetto csync. Ad esempio, IP[0]= 123.456.789.3. Cercare la riga “SUBNET[0]=“<%SG_PKG_SUBNET%>”” e sostituire il token con la sottorete
dell’indirizzo IP del pacchetto. Per identificare la sottorete,
utilizzare netstat -i. Ad esempio, SUBNET[0]= 123.456.789.0.
Distribuire nel cluster lo script di controllo ed
i file ASCII di configurazione del pacchetto: # ccp csync csync.conf /etc/cmcluster/csync/ Applicare il pacchetto ed avviarlo: # cmapplyconf -P csync.conf # cmmodpkg -e csync
Provare la configurazione
del pacchetto csync Provare la configurazione eseguendo le operazioni seguenti: In un client amministrato, utilizzare
il comando: # cfagent --no-lock --verbose --no-splay L’output dettagliato mostrerà il client
mentre controlla la presenza di copie aggiornate dei file principali
dei criteri, mentre li copia in /var/opt/cfengine/inputs, se necessario, e mentre esegue il contenuto di cfagent.conf/cf.main. Nel server master, provare il comando cfrun: # cfrun -- --inform La sintassi --inform indica a cfagent eseguito remotamente di utilizzare il flag --inform, che darà origine a dei messaggi per tutte le
modifiche eseguite da cfengine nel sistema. Per ulteriori informazioni, può essere
utile --verbose: # cfrun -v -- --verbose L’opzione -v indica a cfrun stesso di essere più dettagliato
e l’opzione --verbose sarà passata a cfagent eseguito remotamente. Per ulteriori informazioni sulla risoluzione dei problemi, consultare “Risoluzione
dei problemi di cfengine”.
Configurazione
di un client amministrato di sincronizzazioneQuando si configurano manualmente i client amministrati, le
operazioni base sono: Scambio delle
chiavi di protezione. Questo istituirà una relazione di fiducia
tra il client amministrato ed il server master. Copia di update.conf dal server master al client amministrato. Impostazione di una pianificazione
grazie alla quale cfagent eseguirà le operazioni di sincronizzazione.
Per configurare un cluster Serviceguard come client di un
server master cfengine, ogni membro del cluster è trattato come se
fosse un sistema indipendente e configurato individualmente. Aggiungendo
nuovi membri al cluster, ognuno di essi dovrà essere configurato
adeguatamente.Nel caso dell’aggiunta di un nuovo membro
ad un cluster Serviceguard che esegue il pacchetto csync, i membri del cluster saranno configurati automaticamente
come client amministrati da cfengine. In questo scenario, il pacchetto csync agisce da server master. I nuovi membri saranno configurati
automaticamente come client amministrati e saranno inoltre in grado
di gestire il controllo degli errori per il pacchetto. L’infrastruttura
d’archiviazione ed il filesystem del pacchetto dovrebbero essere
configurati prima dell’aggiunta del nuovo membro al cluster. Per
aggiungere un nuovo client amministrato, iniziare configurando la relazione
di fiducia tra il client ed il server master. I due sistemi si scambiano
le chiavi di protezione per autenticarsi l’uno con l’altro.
La chiave pubblica del server master deve essere copiata nel client
e quella del client nel server master: Come root, creare le chiavi di
protezione del client usando cfkey: # mkdir -p /var/opt/cfengine/ppkeys # cd /var/opt/cfengine/ppkeys # /opt/dsau/sbin/cfkey |
Ciò creerà i file localhost.pub e localhost.priv
di questo client. Copiare la chiave del client
nel server master. Per il nome delle chiavi dei client, il server
master utilizza la seguente convenzione: <nome_utente>-<indirizzo_IP_client>.pub. Inviare la chiave pubblica del client nella directory
ppkeys del server master, osservando la convenzione seguente: # scp localhost.pub server_principale:\ /var/opt/cfengine/ppkeys/root-indirizzo_IP_client.pub |
Quando si trasferisce la chiave, per proteggerne l’integrità è importante
utilizzare un’utility come secure copy (vedere scp(1)). Infine, copiare in questo client amministrato la
chiave del server master: # scp server_principale:/var/opt/cfengine_master/ppkeys/localhost.pub \ root-indirizzo_IP_server_principale.pub |
Quindi, copiare il file update.conf dal server master
al client amministrato. # mkdir -p /var/opt/dsau/cfengine/inputs # cd /var/opt/dsau/cfengine/master_files/inputs # cd /var/opt/dsau/cfengine/inputs # scp server_principale:/var/opt/dsau/cfengine/inputs/update.conf ./update.conf |
Per consentire a questo client di accettare le richieste di cfrun, compiere le operazioni seguenti: Modificare
/etc/rc.config.d/cfservd ed impostare la variabile CSYNC_CONFIGURED al valore “1” - questo avvierà cfservd assieme
al sistema. Avviare cfservd: # /sbin/init.d/cfservd start Provare la configurazione con cfagent (vedere cfagent(8)): # cfagent --no-lock --verbose --no-splay L’output dettagliato mostrerà il client
mentre controlla la presenza di copie aggiornate dei file principali
dei criteri, mentre li copia in /var/opt/cfengine/inputs, se necessario, e quindi mentre esegue il contenuto
di cfagent.conf/cf.main.
Per ulteriori informazioni sulla risoluzione dei problemi,
consultare la sezione “Risoluzione
dei problemi di cfengine”. Scelta
del metodo di richiesta della sincronizzazioneCome amministratori, è possibile “spingere” le
modifiche nei client amministrati utilizzando il comando cfrun (vedere cfrun(8)). cfrun contatta il daemon cfservd in ogni client amministrato e cfservd esegue cfagent affinché questo compia l’effettiva
operazione di sincronizzazione. È inoltre possibile scegliere
che cfagent sia eseguito ad intervalli regolari nel client. Esistono
due approcci: Eseguire cfagent con una pianificazione di cron. Quando si esegue cfagent da cron, farlo utilizzando cfexecd -F. Come esempio, in basso è mostrata la voce per crontab: 0 * * * * /var/opt/dsau/cfengine/bin/cfexecd -F Questa voce di crontab farà sì che cfagent sia eseguito ogni ora. In questo esempio, cfexecd (vedere cfexecd(8)) agisce come wrapper per cfagent e raccoglie gli output e li colloca in /var/opt/dsau/cfengine/outputs. cfexecd è anche in grado di inviare all’amministratore
dei messaggi email, se specificato nel file cfagent.conf. Per i dettagli, consultare il manuale di cfengine,
in /opt/dsau/doc/cfengine. Il file cf.main predefinito contiene un esempio su come aggiungere automaticamente
la riga mostrata sopra al file di crontab di ogni client amministrato. Eseguire cfexecd in modalità daemon. cfexecd ha funzionalità analoghe a quelle di cron, basate sulle classi temporali di cfengine, e può essere utilizzato al posto di cron per eseguire cfagent. L’impostazione predefinita di cfexecd è di eseguire cfengine ogni ora. Quando si comincia ad utilizzare cfengine, è probabilmente più semplice usare cron per pianificare la sincronizzazione nel lato client.
Per i dettagli sull’uso di cfexecd in modalità daemon, consultare il tutorial cfengine presente in /opt/dsau/doc/cfengine/.
cfengine dispone di molte funzionalità di protezione,
che vanno dai parametri per controllare gli attacchi negazione del
servizio - DoS - fino alle liste di controllo
dell’accesso, che impediscono ai client amministrati di
accedere alle directory dei file di riferimento nel server. Per
i dettagli sulle funzionalità di sicurezza di cfengine, consultare il suo manuale, situato in /opt/dsau/doc/cfengine/. I temi relativi alla sicurezza qui trattati comprendono: Scambio delle chiaviTutti gli esempi di scambio di chiavi mostrati finora hanno
utilizzato scp per il trasferimento protetto della chiave pubblica del
server master nel client amministrato e di quella del client amministrato
nel server master. Uno schema come questo offre il maggiore livello
di protezione, ma in alcune situazioni può essere problematico.
Altre possibilità di distribuzione delle chiavi comprendono: Alla connessione con un nuovo client, cfrun dispone di una modalità interattiva simile a ssh, nella quale all’amministratore sarà chiesto
di accettare la chiave del sistema remoto. Ad esempio: cfrun(0): .......... [ Hailing remote-host.abc.xyz.com ] .......... WARNING - You do not have a public key from host remote-host.abc.xyz.com = 12.345.678.90 Do you want to accept one on trust? (yes/no) -> yes cfrun:<nome server master>: Trusting server identity and willing to accept key from remote-host.abc.xyz.com=12.345.678.90 Questa modalità interattiva
può rivelarsi inefficiente con un gran numero di client.
cfrun supporta l’opzione -T, che indica a cfengine di dare fiducia a tutte le nuove chiavi degli host elencati
in cfrun.hosts. cfservd.conf supporta la clausola di controllo TrustKeysFrom. Ad esempio: control: TrustKeysFrom = ( 128.39.89.76 ) # Host fidato TrustKeysFrom = ( 128.39.89.76/24 ) # Sottorete fidata Gli host o gli indirizzi di sottorete elencati saranno implicitamente fidati
e le loro chiavi saranno accettate automaticamente.
Tutte queste alternative di scambio delle chiavi devono essere
utilizzate con estrema attenzione e solamente in ambienti sicuri,
in cui la LAN è fidata, così come lo sono gli
host remoti. Una volta che è stata accettata, la chiave
pubblica non sarà aggiornata, a meno che sia eliminata manualmente
dalla directory /var/opt/dsau/cfengine/ppkeys del server master, oppure sostituita manualmente da
una nuova chiave.
|