 |
» |
|
|
 |
Vous pouvez utiliser les utilitaires d’administration
de systèmes distribués (DSAU) afin d’envoyer
des fichiers et des commandes vers des systèmes sélectionnés
sur une grappe ou un réseau. Les outils DSAU sont les suivants : Configuration
synchronization
L’outil Configuration Synchronization (synchronisation
de configuration) vous permet d’avoir la certitude que
les systèmes de la grappe ou du réseau sont gérés
au niveau choisi. Lorsque vous effectuez des modifications sur le
système maître de configuration, celles-ci sont répercutées
sur tous les systèmes clients. L’outil Consolidated Logging (consolidation de consignation)
vous permet de consulter un seul fichier de consignation contenant
les entrées de tous les systèmes de la configuration,
dans l’ordre chronologique, et donc de retrouver facilement
une entrée spécifique. L’outil Command Fanout (déploiement de commande)
vous permet d’envoyer la même commande à partir
d’un système sélectionné vers
tous les systèmes de la configuration. Cette fonction évite
de devoir consulter tous les systèmes de la configuration
et de nombreuses opérations manuelles. Présentation
de l’outil Configuration Synchronization |  |
La gestion de la configuration et des variations de configuration
sur un ensemble de systèmes distribués constitue
un défi permanent pour les administrateurs système.
Il existe de nombreux outils permettant de traiter différents
aspects de la gestion de configuration multi-système. Par
exemple, pour la gestion des comptes, les solutions standard comprennent
NIS (Network Information System) et LDAP (Lightweight Directory
Access Protocol). Pour la synchronisation au niveau fichiers, il existe
des outils tels que rdist (voir la page de manuel rdist(1)) et rsync. HP System Insight Manager permet de visualiser, de contrôler
et de gérer des groupes de systèmes. Cette
boîte à outils offre un nouvel outil :
le moteur de configuration (cfengine). cfengine est un outil Open Source déjà connu
de synchronisation de configuration. Il permet de définir
une politique ou des objectifs de gestion de configuration grâce à laquelle
l’administrateur peut définir les actions de gestion
qui seront appliquées à des groupes de systèmes
en vue d’obtenir l’état désiré. cfengine est un outil de type client/serveur. Un système
maître de configuration centralisé, ou serveur
de règles, héberge un fichier de politique de
configuration qui définit les actions de gestion devant être effectuées
sur chaque client géré. Le système maître
de configuration héberge également les fichiers « d’images
parfaites », ou les copies de référence
des fichiers devant être distribués aux clients. L’administrateur
peut utiliser cfengine pour effectuer, par exemple, les tâches
suivantes : Vérifier
que les systèmes clients utilisent les bons fichiers de configuration,
en copiant les fichiers ou les répertoires de référence. Désactiver les fichiers
mal configurés sur le client. Vérifier les autorisations
de fichiers, les propriétaires et contrôler les modifications
de somme de contrôle. Exécuter des commandes
de shell spécifiées sur chaque client. Vérifier les processus
ou les traitements de signaux. Vérifier les montages
de systèmes de fichiers spécifiques.
Un
assistant de synchronisation de configuration (csync_wizard) permet à l’administrateur de configurer
rapidement l’outil cfengine en vue de gérer un ensemble de systèmes
distribués ou de le configurer comme service à haute
disponibilité dans une grappe ServiceGuard. Présentation
de l’outil cfengineL’administrateur doit tout d’abord définir
un système central ou une grappe Serviceguard qui fera
office de serveur maître de configuration ou de serveur
de règles. L’assistant de synchronisation de configuration (csync_wizard) est une fenêtre conviviale du processus de
configuration initiale. Ce système central hébergera
les fichiers maîtres de politique (par exemple, cfagent.conf) définissant les règles de configuration souhaitées,
ainsi que les copies de référence ou les copies
originales des fichiers devant être distribués
aux clients gérés. Chaque client géré récupère
les copies originales des fichiers de politique à partir
du serveur central de configuration et évalue l’état
actuel par rapport à celui souhaité, tel que défini
par le fichier de politique. Toute différence entraîne
l’exécution des règles de configuration
en vue de resynchroniser le client. L’administrateur peut
lancer les opérations de synchronisation sur les clients
gérés de deux manières, à l’aide
d’une opération de diffusion ou d’extraction. À l’aide
de la commande cfrun (voir la page de manuel cfrun(1) pour plus de détails)
exécutée sur le serveur maître de configuration, l’administrateur
peut diffuser les modifications. cfrun lit le fichier cfrun.hosts afin de définir la liste des clients gérés.
L’opération appelle ensuite la commande cfagent sur chaque client géré pour effectuer
une synchronisation. Donc, les opérations de diffusion correspondent
réellement à des demandes envoyées aux
clients gérés afin qu’ils effectuent
une extraction immédiate. Les opérations d’extraction
sont effectuées à l’aide de la commande cron
ou du démon cfexecd (similaire à cron) de cfengine. Les deux techniques
appellent la commande cfagent à intervalles fixes, afin d’effectuer
la synchronisation de configuration lancée par le client. L’administrateur
définit les intervalles adaptés à chaque
groupe de clients gérés. Par exemple, toutes les
cinq minutes, toutes les heures ou une fois par jour. L’administrateur
peut également appeler cfagent directement afin d’effectuer des synchronisations à la demande.
Démons
et commandes de cfenginecfengine utilise différents démons et commandes
pour effectuer les opérations de synchronisation de configuration.
La liste suivante décrit les composants principaux de cfengine. cfagent -- La commande cfagent est l’élément moteur de cfengine. Elle
est exécutée sur chaque client géré et
s’amorce elle-même à l’aide
du fichier update.conf, qui décrit l’ensemble de fichiers à transférer
du serveur maître vers le client local géré.
Les fichiers trasférés comprennent le fichier
principal de politique, cfagent.conf, et tous les fichiers liés à cette
politique. Dans la mise en œuvre des DSAU, cfagent.conf importe le fichier cf.main qui comporte des exemples de nombreuses fonctionnalités
de cfengine. Après le transfert des fichiers de configuration, cfagent évalue les instructions de configuration contenues
dans ceux-ci. Si la configuration actuelle du système client
est différente de la configuration souhaitée, cfagent exécute les actions définies afin de restaurer
l’état correct du client. cfservd -- Le démon cfservd joue deux rôles : cfservd est exécuté sur le serveur maître
de configuration et constitue le centre d’échange
des demandes de transfert de fichiers émanant des clients
gérés. cfagent sur les clients gérés contacte le démon cfservd du serveur maître et demande des copies des
fichiers maîtres de politique, ainsi que des copies de tous
les fichiers de référence requis dans le cadre
des opérations de synchronisation de configuration définies.
Le démon cfservd maître est chargé de l’authentification
des clients distants, à l’aide d’un mécanisme
d’échange de clés privées et
publiques avec cryptage optionnel des fichiers transférés
vers les clients gérés. cfservd peut être éventuellement exécuté sur
chaque client géré afin de traiter les demandes
de cfrun. cfrun permet à l’administrateur de diffuser
les modifications aux clients gérés au lieu d’attendre
que ceux-ci se synchronisent selon un intervalle de temps défini
par le client. La commande cfrun doit être lancée à partir
du serveur maître de configuration. Elle contacte chaque client
géré figurant dans les fichiers cfrun.hosts et se connecte au démon cfservd du client géré pour
lui demander d’appeler cfagent afin d’effectuer la synchronisation. cfservd est configuré à l’aide de cfservd.conf et démarre à l’aide de /sbin/init.d/cfservd.
cfexecd -- cfexecd est un outil de programmation et de rapport. Si l’administrateur
utilise cron pour effectuer des sessions de synchronisation à intervalles
fixes, cfexecd est la commande placée dans le fichier crontab en vue de conditionner l’appel de cfagent. Elle stocke le résultat de l’exécution
de cfagent dans le répertoire de sortie (voir cfagent.conf pour plus de détails) et envoie éventuellement
un e-mail. cfexecd possède ses propres fonctionnalités
de type cron basées sur les classes temporelles de cfengine. L’administrateur peut exécuter cfexecd en mode démon et l’utiliser pour appeler
cfagent à intervalles définis à la place
de cron. Le réglage par défaut est un appel de
cfagent toutes les heures. Pour vous familiariser avec cfengine, il est plus simple de démarrer à l’aide
de cron. cfrun -- La commande cfrun contacte les clients gérés et demande à chacun
d’effectuer une synchronisation immédiate. Plus particulièrement,
elle se connecte au démon cfservd de chaque client géré qui, à son
tour, lance cfagent.
La Figure 3-1, « Présentation de cfengine » illustre
la relation entre les commandes et les démons de cfengine et donne un exemple d’utilisation de cfrun par l’administrateur. Les lignes en pointillés
sur le schéma indiquent les séquences d’appel
(par exemple, A appelle B). Les lignes pleines indiquent la lecture
des données des fichiers de configuration. L’administrateur est connecté au
serveur maître de synchronisation de configuration et effectue
une modification qui doit être diffusée aux clients
gérés, à l’aide de la commande cfrun. cfrun vérifie la liste des clients gérés
dans le fichier cfrun.hosts. Notez que le serveur maître peut être
son propre client. Sur ce schéma, il existe deux clients :
le serveur maître et un client distant. cfrun contacte cfservd sur chaque client géré, qui à son
tour appelle cfagent. cfagent vérifie tout d’abord s’il
existe une copie mise à jour du fichier update.conf sur le serveur maître et transfère éventuellement
celle-ci sur le client. Si un système autonome est utilisé comme
serveur maître, la copie originale du fichier update.conf est stockée dans /var/opt/dsau/cfengine_master/inputs/ par défaut. Les copies originales des autres
fichiers de configuration, par exemple cfagent.conf, cfservd.conf et cfrun.hosts figurent également dans ce répertoire.
Si le serveur maître est une grappe Serviceguard, les fichiers
maîtres de configuration sont situés au niveau
de point de montage associé à l’ensemble
logiciel. Par exemple, si le point de montage est nommé csync,
le chemin sera /csync/dsau/cfengine_master/inputs. Lors de la copie des fichiers de configuration sur
le système local, cfagent stocke ceux-ci dans /var/opt/dsau/cfengine/inputs qu’il s’agisse de systèmes
autonomes ou de grappes. cfagent analyse tout d’abord le contenu de update.conf afin de mettre à jour les données binaires
modifiées de cfengine (le cas échéant) et d’obtenir
la version la plus récente des fichiers de politique (cfagent.conf) et des fichiers associés. cfagent analyse ensuite cfagent.conf afin de savoir si le client se trouve dans l’état
souhaité. En cas de différences, cfagent effectue les actions définies afin de corriger
la configuration du client.
Modèles
de déploiement du serveur maître cfengineLe serveur maître cfengine peut être un système HP-UX autonome desservant
des groupes de clients distribués. Les clients peuvent eux-mêmes être
des systèmes autonomes ou appartenir à une grappe Serviceguard.
Si vous utilisez déjà un serveur central de gestion
Systems Insight Manager, celui-ci peut être idéal
pour constituer un serveur maître cfengine. Les serveurs maîtres peuvent également
fonctionner en tant que clients et les tâches de synchronisation
de configuration peuvent être effectuées sur ces
systèmes ainsi que sur les clients distants. Si vous gérez des grappes Serviceguard, il est possible
de déployer cfengine uniquement pour une utilisation intra
grappe en vue de synchroniser les membres d’une même
grappe. Dans cette configuration, cfservd est configuré comme un ensemble logiciel à haute
disponibilité, mais les seuls clients de cfengine sont
les membres de la grappe. Le nom DNS/adresse IP de l’ensemble
logiciel est le nom du serveur maître cfengine. Outre le service de synchronisation de configuration intra
grappe, une autre configuration de Serviceguard permet à la
grappe d’assurer un service de synchronisation de configuration à haute
disponibilité pour des groupes de système clients
distants. Ces clients peuvent être des systèmes
autonomes ou des grappes Serviceguard. La grappe assurant le service
cfengine peut être un client ou elle-même et bénéficie également des
fonctionnalités de synchronisation de configuration de
cfengine. Une configuration possible, bien qu’inhabituelle,
consiste à utiliser un membre fixe d’une grappe
Serviceguard comme serveur maître mais sans configurer
d’ensemble logiciel et donc à ne pas utiliser
cfservd en haute disponibilité. Cette configuration est
acceptée mais n’est pas recommandée. Configuration
de cfengine |  |
Les sections suivantes
décrivent en détail le paramétrage d’un
serveur maître de synchronisation de configuration et de
ses clients. La méthode la plus rapide consiste à utiliser
l’assistant de synchronisation de configuration (csync_wizard), décrit ci-après. Vous trouverez également la
description de configurations totalement manuelles. Utilisation
de l’assistant de synchronisation de configurationL’assistant csync_wizard (voir csync_wizard(1)) permet d’automatiser le
paramétrage du serveur maître de synchronisation
de configuration et de ses clients gérés. Il permet
de paramétrer un système autonome ou une grappe
Serviceguard comme serveur maître. L’assistant
configure tous les clients gérés afin qu’ils
exécutent cfservd de manière à pouvoir utiliser cfrun
(voir cfrun(8))
sur le serveur maître. Pour plus d’informations, reportez-vous aux sections
correspondantes. Utilisation
de l’assistant pour configurer un serveur de synchronisation
autonomePour configurer un serveur de synchronisation sur un système
autonome, exécutez la commande csync_wizard(1)
sur le système autonome que vous souhaitez configurer comme
serveur maître de synchronisation : # /opt/dsau/sbin/csync_wizard L’assistant affiche l’écran d’accueil
suivant : Querying the system <nom d’hôte local> 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... Appuyez sur Retour pour continuer et sélectionnez
l’option 1 dans le menu suivant pour configurer un serveur
maître : 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: <nom d’hôte local> L’assistant vous demande ensuite si vous désirez également
configurer les clients gérés immédiatement
après avoir configuré le serveur. Dans cet exemple,
répondez non. Les clients gérés seront
ajoutés ultérieurement. 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 L’assistant configure le système comme serveur
maître : ******* 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.... Une fois la configuration terminée, l’assistant
affiche les écrans récapitulatifs suivants, qui
dirigent l’administrateur sur le fichier principal de politique, /var/opt/dsau/cfengine_master/inputs/cf.main, et le fichier de réponse enregistré pour
cette session de l’assistant. 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: <nom d’hôte local> and members: Notez que si vous configurez un serveur maître sans
ajouter de clients gérés durant la configuration
du serveur, la zone membres (liste des clients gérés)
sera vide, comme l’indique l’exemple précédent. 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 Utilisation
de l’assistant pour configurer un serveur de synchronisation
de grappe ServiceguardPour configurer un serveur de synchronisation sur une grappe
Serviceguard, deux choix de configuration sont possibles : Création
d’un ensemble logiciel Serviceguard afin d’assurer
un service de configuration à haute disponibilité. Configuration d’un
seul membre de la grappe comme s’il s’agissait d’un
système autonome. Le service de synchronisation de configuration
ne sera pas un service à haute disponibilité et
cette configuration ne fonctionnera pas correctement avec les fonctions d’automatisation
de Serviceguard décrites à la section relative à l’automatisation
de Serviceguard ; c’est pourquoi elle n’est
pas recommandée.
Cette section traite plus particulièrement de l’utilisation
de l’assistant afin de configurer un service de synchronisation
de configuration à haute disponibilité.  |  |  |  |  | REMARQUE : Assurez-vous que la valeur MAX_CONFIGURED_PACKAGES de
cette grappe peut accepter l’ensemble logiciel supplémentaire.
Pour plus d’informations sur cette option, reportez-vous
au manuel Managing Serviceguard fourni avec
la documentation de Serviceguard. En outre, avant de lancer l’assistant,
assurez-vous que les membres de la grappe sont activés
et fonctionnent. |  |  |  |  |
Tout d’abord, exécutez l’assistant
de synchronisation de configuration, csync_wizard(1) : # /opt/dsau/sbin/csync_wizard Querying the system <nom d’hôte local> 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... Appuyez sur Retour pour continuer et sélectionnez
l’option 1 dans le menu suivant pour configurer un serveur
maître : 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 Sélectionnez 1 et appuyez sur Retour ; l’assistant
affiche le texte suivant : 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]: L’assistant nomme l’ensemble logiciel « csync » pour
la synchronisation de configuration. Ce nom spécifique
est requis. Il est nécessaire de paramétrer la
configuration de stockage LVM et la configuration réseau de
l’ensemble logiciel avant de continuer ou d’exécuter
l’assistant. En outre, tous les membres de la
grappe doivent être activés et disponibles. Pour
plus de détails, reportez-vous au manuel Managing Serviceguard,
sections « Building an HA Cluster Configuration », « Creating
a Storage Infrastructure with LVM ».  |  |  |  |  | REMARQUE : L’assistant prend en charge uniquement la création
d’ensembles logiciels basés sur des groupes de
volumes LVM. Si vous utilisez CFS ou VxVM, vous devez effectuer
une configuration manuelle. Pour plus de détail sur la
configuration manuelle de l’ensemble logiciel csync, reportez-vous à la section relative à la
configuration manuelle d’une grappe Serviceguard. |  |  |  |  |
L’assistant demande les éléments
suivants, qui doivent tous avoir été configurés
au préalable : Le nom du groupe
de volumes LVM (par exemple, vgcsync) Le volume logique du groupe
de volumes (par exemple, /dev/vgcsync/lvol1) Le point de montage du système
de fichiers (par exemple, /csync) Les options de montage du
système de fichiers (par exemple, -o rw,largefiles).
Les options de montage sont utilisées textuellement dans
le champ du script de contrôle de l’ensemble logiciel
Service FS_MOUNT_OPT[0]. Notez que les options de montage doivent
correspondre au système de fichiers créé sur
le volume logique. Par exemple, si le système de fichiers
a été créé avec la prise en
charge des grands fichiers, l’option de montage «
largefiles » doit être sélectionnée. Le type de système
de fichiers (par exemple, VxFS) L’adresse IP de
l’ensemble logiciel. Celle-ci doit également être
un nom DNS enregistré afin de faciliter la synchronisation
de configuration sur les systèmes clients. Le sous-réseau de
l’ensemble logiciel. Utilisez netstat -i pour définir le sous-réseau.
Après avoir configuré l’infrastructure
de stockage et obtenu l’adresse IP, appuyez sur Retour
pour accéder à la réponse « oui » par
défaut et lancer la création de l’ensemble
logiciel. L’assistant demande alors les informations relatives à l’ensemble
logiciel : 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]:<retour> Enter the Filesystem Type? [vxfs]: <retour> Enter the IP address? []: 12.345.6.78 Enter the Subnet? []: 12.345.7.8 L’assistant vous demande alors si vous souhaitez
gérer d’autres clients distants, en d’autres
termes, des systèmes extérieurs à la
grappe. L’assistant configure automatiquement les membres
existants de la grappe. C’est pourquoi ceux-ci doivent être
activés et accessibles lors de l’exécution
de l’assistant. Dans l’exemple suivant, l’administrateur sélectionne « non » de
manière à ce que seuls les membres de la grappe soient
configurés initialement en tant que clients. Notez que d’autres clients distants peuvent être
facilement ajoutés ultérieurement à l’aide
de l’assistant. Il n’est pas nécessaire
d’utiliser l’assistant pour ajouter de nouveaux
clients lorsque vous ajoutez des membres à la grappe..
Pour plus de détails, reportez-vous à la section relative
aux fonctions d’automatisation de 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]: <retour> L’assistant dispose désormais de toutes
les données requises pour configurer la grappe et peut
donc lancer l’opération : ******* 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 <nom d’hôte local>. 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.... Une fois la configuration terminée, l’assistant
affiche les écrans récapitulatifs suivants, qui
dirigent l’administrateur sur le fichier principal de politique, point_de_montage/cfengine_master/inputs/cf.main, et le fichier de réponse enregistré pour
cette session de l’assistant. Notez que le fichier de politique
figure dans le système de fichiers associé à l’ensemble logiciel
et qui vient d’être configuré. Dans notre
exemple, l’administrateur a choisi de monter le système
de fichiers de l’ensemble logiciel en tant que /csync.Si
l’administrateur a préalablement configuré cfengine, avant d’écraser les fichiers de configuration
existants, l’assistant crée des sauvegardes dans
le répertoire : /var/opt/dsau/cfengine/backups Les fichiers figurant en tête du répertoire
correspondent aux fichiers de sauvegarde les plus récents.
Toutes les configurations antérieures sont enregistrées
dans des sous-répertoires horodatés, nommés v_horodatage. 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: <nom d’hôte de l’ensemble logiciel> and members: <membre1 grappe>, <membre2 grappe>, ... 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 Remarques
relatives à la configuration des grappes.Cette section décrit en détail une configuration à haute
disponibilité de cfengine dans une grappe Serviceguard. Pour plus d’informations
sur les démons et les commandes de cfengine, voir « Démons
et commandes de cfengine ».
L’ensemble logiciel Serviceguard garantit la haute disponibilité du
démon cfservd de cfengine. Les fichiers de configuration de cfengine update.conf et cfagent.conf définissent le serveur maître de synchronisation
de configuration qui sera le nom DNS enregistré de l’adresse
IP relocalisable de l’ensemble logiciel. Lorsque les clients
gérés exécutent cfagent (voir cfagent(8)), cfagent se connecte à cfservd sur le nœud adoptif de l’ensemble logiciel.
Par conséquent, les membres de la grappe sont tous des
clients gérés. Le membre qui héberge
l’ensemble logiciel fonctionne également comme
serveur maître pour les fichiers de politique. Lors de l’amorçage de la grappe, chaque
membre lance un cfservd client. Il s’agit du cfservd qui répond aux demandes de cfrun. Lorsque l’ensemble logiciel démarre
sur un membre, ce démon cfservd accède alors au système de fichiers
cet ensemble logiciel et devient le cfservd maître qui diffuse les fichiers de politique à tous
les clients gérés. Ce démon cfservd est contrôlé par l’ensemble
logiciel. Si cfservd échoue, l’ensemble logiciel tente de
redémarrer sur un autre membre. Le démon cfservd de ce membre devient alors le cfservd maître. Notez que le fait d’interrompre l’ensemble
logiciel n’arrête pas le démon cfservd sur le membre adoptif dans la mesure où ce démon
doit être présent pour répondre aux demandes
ultérieures de cfrun. En outre, contrairement à certains autres services
HA, l’arrêt ou l’indisponibilité de
l’ensemble logiciel csync n’entraîne aucun impact négatif
sur les clients distants. Ceux-ci continuent à fonctionner
dans leurs configurations actuelles. Avant de diffuser de nouvelles
instructions de configuration aux clients gérés,
l’administrateur doit s’assurer que l’ensemble
logiciel est activé et fonctionne. L’assistant automatise la diffusion des clés
de cfengine à tous les membres de la grappe. Pour plus de
détails sur la diffusion des clés, voir « Remarques
relatives à la sécurité ». Fonctions
d’automatisation de ServiceguardLes utilitaires d’administration de systèmes
distribués exigent Serviceguard 11.17 (ou une
version ultérieure). Avec Serviceguard 11.17 ou ultérieur,
lors de l’ajout ou de la suppression de membres sur une
grappe, les outils de synchronisation de configuration effectuent
automatiquement les actions de configuration nécessaires.
En particulier : Lors
de l’ajout d’un membre à la grappe, le
nouveau membre sera automatiquement configuré afin de participer à la
synchronisation de configuration. Les actions de configuration suivantes
sont automatiquement effectuées sur le nouveau membre : etc/rc.config.d/cfservd est modifié afin de mettre CSYNC_CONFIGURED à 1. Les clés publiques
et privées correspondantes de cfengine sont créées pour ce membre et stockées
dans le répertoire /var/opt/dsau/cfengine/ppkeys des membres. Ces nouvelles clés sont également
diffusées aux répertoires /var/opt/dsau/cfengine/ppkeys sur les autres membres de la grappe. Le répertoire
/var/opt/dsau/cfengine/inputs du nouveau membre est renseigné. cfservd est lancé sur le nouveau membre. Les fichiers de l’ensemble
logiciel sont copiés dans /etc/cmcluster/csync/ sur le nouveau membre. Une session de synchronisation
de cfagent est effectuée sur le système maître
en vue de renseigner le répertoire /var/opt/dsau/cfengine/inputs de ce système. Une session de synchronisation
de cfagent est effectuée sur le client distant.
Lors de la suppression d’un membre sur
une grappe, la clé publique de ce membre est supprimée
du répertoire /var/opt/dsau/cfengine/ppkeys à l’échelle de la grappe.
Notez que l’administrateur peut définir
des groupes ou des classes cfengine permettant de recenser tous les membres d’une
grappe Serviceguard en particulier. Les classes ainsi définies
ne seront pas mises à jour automatiquement et il appartient à l’administrateur
de mettre à jour manuellement le fichier cfagent.conf et les fichiers associés en fonction des modifications
d’appartenance à la grappe. Configuration
d’un client de synchronisationVous pouvez utiliser l’assistant
de synchronisation de configuration afin d’ajouter des
clients gérés à une configuration existante
de cfengine. Lancez l’assistant sur le serveur maître, pas sur
le système client. Si une grappe Serviceguard se trouve être
le serveur maître, lancez l’assistant sur le nœud
adoptif de l’ensemble logiciel csync.
Notez que l’ajout d’un nouveau membre de la grappe
en tant que client dans une configuration à haute disponibilité est
automatique. Pour plus d’informations, reportez-vous à la
section « Fonctions
d’automatisation de Serviceguard ». En outre, afin de sécuriser la diffusion des clés
cfengine, le client doit être configuré pour un
accès non-interactif à ssh par
le compte root du serveur maître. L’outil csshsetup (voir csshsetup(1)) facilite la configuration
de l’accès à ssh sur
un système distant. Cet outil est utilisé dans
les exemples donnés ci-après. L’assistant peut être réglé pour
gérer uniquement les clients situés dans le même
domaine DNS que le serveur maître. Pour les configurations multi-domaine,
reportez-vous à la section « Configuration
manuelle » qui donne des instructions relatives à l’ajout
manuel de clients. Notez que si vous ajoutez une grappe Serviceguard comme client
géré, vous devez ajouter manuellement chaque membre
de cette grappe. Tout d’abord, connectez-vous en tant qu’utilisateur
root sur le serveur maître et configurez l’accès à ssh sur
le système distant : # csshsetup <nom d’hôte du client géré> csshsetup teste tout d’abord l’accès ssh sur
le système client. S’il n’est pas configuré, ssh demande
le mot de passe du client géré. Lancez l’assistant de synchronisation de configuration
et sélectionnez l’option 2 pour ajouter un nouveau
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 Lorsque le système le demande, entrez le nom du client à ajouter : This option will configure additional clients to the cfengine domain. Enter the name of the client to add: <nouveau client> L’assistant lance alors la configuration du client
et affiche la progression : 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 <nouveau client> has been added to the cfengine domain L’assistant configure chaque nouveau client afin
qu’il execute cfservd, de manière à pouvoir
répondre aux demandes de cfrun et ajoute le client au fichier cfrun.hosts du système maître. Les sections suivantes décrivent les opérations
requises pour configurer manuellement les serveurs maîtres
de synchronisation de configuration cfengine ou les clients gérés. Notez qu’il
est habituellement plus simple d’utiliser csync_wizard (voir csync_wizard(1m)) puis de modifier la configuration
ainsi obtenue, plutôt que d’effectuer la totalité des opérations.
Cela est particulièrement vrai dans le cas d’une
grappe Serviceguard, dans la mesure où l’assistant
facilite la configuration de l’ensemble logiciel et se
charge de diffuser les bons fichiers de configuration à tous
les membres de la grappe. Lors de configurations manuelles, vous risquez de créer
des configurations qui ne pourraient pas être gérées
par csync_wizard ultérieurement. Par exemple, l’assistant
ne prend en charge que les configurations de domaine DNS unique.
Si vous configurez manuellement des configurations multi-domaine,
vous ne pourrez pas utiliser l’assistant pour ajouter et
supprimer des clients.  |  |  |  |  | REMARQUE : Vous pouvez utiliser csshsetup afin de configurer une relation sécurisée entre
le serveur maître et les clients gérés.
Vous pourrez ainsi utiliser les commandes de l’outil Command
Fanout, telles que cexec et ccp (voir cexec(1) et ccp(1)).
L’utilisation de ces commandes peut simplifier les opérations
de configuration décrites ci-après, lorsque les
fichiers doivent être distribués aux clients gérés. |  |  |  |  |
Configuration
manuelle d’un serveur de synchronisation autonomeEffectuez les opérations suivantes pour configurer
un système autonome en tant que serveur maître cfengine : Tout d’abord, créez
les copies originales des fichiers de configuration de cfengine. Ces fichiers sont placés dans un répertoire
connu et sont distribués à chaque client géré.
Le répertoire par défaut est /var/opt/dsau/cfengine_master/inputs, référencé dans les modèles
par défaut. Commencez par créer le répertoire : # mkdir -p /var/opt/dsau/cfengine_master/inputs Copiez les fichiers de modèles par défaut
dans les répertoires suivants : # 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 |
Puis, éditez update.conf. Le format de ce fichier est similaire à celui du
fichier de configuration principal de cfengine cfagent.conf. Il est utilisé pour transférer
et mettre à jour les données binaires de cfengine ainsi que les fichiers de définition de configuration
mis à jour (par exemple, cfagent.conf) sur les clients gérés. Afin d’éviter toute
erreur, il est important que ce fichier soit très simple.
Si ce fichier contient des erreurs, il sera nécessaire
d’effectuer une copie manuelle de la nouvelle version sur
chaque client géré. Ce fichier contient des entités lexicales du type <%nom entité%> que csync_wizard remplacera par les réponses de l’administrateur
aux questions posées. Remplacez les entités lexicales
comme indiqué ci-après : Remplacez
<%HOST_NAMER%> par le nom d’hôte non qualifié du serveur
maître. Remplacez <%DOMAIN_NAMER%> par le nom de domaine du serveur maître.
Par exemple : host_name = ( “master-server-name” ) domain_name = ( “abc.xyz.com” ) |
Notez que ce modèle de update.conf suppose que le serveur maître et ses clients
appartiennent tous à un même domaine DNS. Si votre
serveur maître comporte des clients gérés
dans plusieurs domaines DNS, modifiez update.conf comme suit : Remplacez <%HOST_NAMER%> par le nom d’hôte complet du serveur
maître. Supprimez la variable
<domain_name>. Remplacez la ligne « domain = ( “${domain_name}” ) » par la ligne suivante : domain = ( ExecResult(/sbin/awk ‘/domain/ {print $2}’ /etc/resolv.conf) ) |
Cela permet de définir correctement la variable de
domaine du côté client. Notez que cette technique
suppose que /etc/resolv.conf est correctement configuré sur chaque client géré. Ces modifications de domaine doivent également être
effectuées dans cf.main et cfservd.conf. Reportez-vous aux étapes suivantes. Utilisez
l’indicateur -p de cfagent (ou --parse-only) pour vérifier la syntaxe de update.conf.
Distribuez le fichier update.conf maître à chaque client géré.
Cette étape est décrite à la section « Configuration
d’un client géré de synchronisation ». Créez les clés de sécurité du
serveur maître. cfengine utilise une clé publique/privée en
vue d’authentifier les clients distants. Une paire de clés
publiques/privées est générée
sur le serveur maître et sur tous les clients gérés.
La clé publique de chaque client géré est
copiée sur le serveur maître et à partir
du serveur maître sur les clients gérés.
Il est important de sécuriser l’échange
des clés à l’aide d’un outil
du type copie sécurisée (voir scp(1))
ou à l’aide d’une bande ou d’un
CD-ROM. Tout d’abord, générez les clés
du serveur maître : # /opt/dsau/sbin/cfkey # cd /var/opt/cfengine/ppkeys Cette opération permet de créer les fichiers localhost.pub et localhost.priv. Copiez la clé publique dans root-adresse IP du serveur maître.pub. Par exemple, en supposant que l’adresse IP
du système est 10.0.0.5, utilisez la
commande suivante : # cp localhost.pub root-10.0.0.5.pub Pour plus de détails sur la copie des clés
des clients sur ce serveur maître, reportez-vous à la
section « Configuration
d’un client géré de synchronisation ». Sur le serveur maître,
configurez le démon cfservd de manière à ce qu’il soit
lancé au démarrage du système. Éditez
/etc/rc.config.d/cfservd et modifiez la ligne CSYNC_CONFIGURED=0 en CSYNC_CONFIGURED=1. Éventuellement, si vous souhaitez pouvoir
diffuser les modifications sur les clients gérés à l’aide
de cfrun, répliquez cette modification sur tous les clients gérés. cfrun exige que les clients gérés figurent
dans le fichier cfrun.hosts. Dans la configuration par défaut, se fichier
se trouve dans /var/opt/dsau/cfengine_master/inputs. Éditez-le et ajoutez les noms d’hôtes
de chaque client géré (un par ligne). Il s’agit de
la méthode la plus simple de vous assurer que tous les
noms d’hôtes sont complets. Si vous utilisez des
noms d’hôtes complets, la ligne « domain = » n’est pas requise et peut être
supprimée. Si vous utilisez des noms d’hôtes
non qualifiés, recherchez la ligne «
domain = <%DOMAIN_NAMER%> » et remplacez l’entité lexicale
par le domaine DNS des systèmes clients. Cela implique
que tous les clients appartienne au même domaine. Le fichier /var/opt/dsau/cfengine_master/inputs/cfagent.conf est le fichier principal de politique. Le fichier cfagent.conf par défaut contient le modèle par
défaut cf.main qui est un fichier modèle commenté comportant
des exemples d’actions de synchronisation communes pour
les systèmes autonomes et les grappes Serviceguard. cf.main contient les mêmes entités lexicales <%HOST_NAMER%> et <%DOMAIN_NAMER%> que update.conf. Effectuez les mêmes modifications qu’à l’étape
3 ci-dessus. Notez que ce fichier cf.main par défaut n’effectue aucune action
de gestion. Toutes les lignes d’actions sont mises en commentaire. Il s’agit
d’un point de départ pour la création
d’un ensemble personnalisé de règles
et d’actions de cfengine pour les clients gérés. Le manuel
de référence de cfengine décrivant la syntaxe et toutes les actions de
gestion définies dans ce fichier figure dans le répertoire /opt/dsau/doc/cfengine. D’autres exemples de fichiers de configuration
de cfengine fournis avec la distribution ouverte de cfengine figurent dans le répertoire /opt/dsau/share/cfengine/examples. Le fichier /var/opt/dsau/cfengine_master/inputs/cfservd.conf contrôle les clients gérés
qui peuvent accéder aux fichiers gérés
par cfservd sur le serveur maître. Effectuez les modifications
suivantes dans cfservd.conf. Supprimez totalement la ligne suivante : domain_name = ( “<%DOMAIN_NAMER%>” ) Modifiez l’affichage de la ligne domain = ( “${domain_name}” ) en : domain = ( ExecResult(/sbin/awk ‘/domain/ {print $2}’ /etc/resolv.conf) ) La strophe « admit: » définit les clients
pouvant accéder aux fichiers sur le serveur. Remplacez
chaque « *.${domain_name} » par une liste des domaines
DNS des clients gérés, séparés
par un espace. Par exemple : /var/opt/dsau/cfengine_master/master_files *.abc.xyz.com *.cde.xyz.com Cet exemple permet à tous les hôtes figurant
dans les domaines repertoriés d'accéder aux fichiers
du serveur maître. Vous pouvez également spécifier
des listes d'hôtes spécifiques, des plages d'adresses
IP, etc. Pour plus d'informations, reportez-vous au manuel de reférence
de cfengine.
Sur le serveur maître, lancez cfservd : # /sbin/init.d/cfservd start Cette opération se répète pour
chaque client géré. Effectuez les opérations suivantes pour
tester la configuration : Sur un client géré,
utilisez la commande : # cfagent --no-lock --verbose --no-splay Le mode prolixe affiche le client et recherche les copies
mises à jour des fichiers maîtres de politique,
les copie dans /var/opt/cfengine/inputs le cas échéant, puis exécute
le contenu de cfagent.conf/cf.main. Sur le serveur maître, testez la commande cfrun : # cfrun -- --inform La syntaxe --inform demande au cfagent distant d’utiliser l’indicateur --inform afin
de générer des messages pour toutes les modifications
effectuées par cfengine sur le système. Pour plus d’informations,
l’option --verbose peut également
s’avérer utile : # cfrun -v -- --verbose L’option -v demande à cfrun d’être plus prolixe et l’option --verbose est
transmise au cfagent distant.
Pour plus d’informations sur le dépannage,
reportez-vous à la section « Dépannage
de cfengine ».
Configuration
manuelle d’un serveur de synchronisation de grappe ServiceguardLa configuration
de cfengine en haute disponibilité sur une grappe Serviceguard
est similaire à celle d’une machine autonome,
décrite à la section « Utilisation
de l’assistant pour configurer un serveur de synchronisation
autonome ». Les principales différences résident
dans la création de l’ensemble logiciel Serviceguard
et dans le mécanisme utilisé pour la distribution
des clés de sécurité de cfengine. Effectuez
toutes les opérations décrites ci-après. Préparation
initiale de l’ensemble logiciel Serviceguard Tout d’abord,
procurez-vous une adresse IP pour l’ensemble logiciel.
Cette adresse est habituellement enregistrée dans DNS afin
de simplifier la gestion des clients distants. Si vous utilisez cfengine
en mode intra grappe uniquement, il suffit de vérifier que
l’adresse est ajoutée au fichier /etc/hosts de chaque membre. Puis, créez l’infrastructure de
stockage requise pour un nouvel ensemble logiciel. Les instructions
relatives à cette opération sont décrites
dans le manuel Managing Serviceguard, dans
les sections « Building an HA Cluster Configuration », « Creating
a Storage Infrastructure. » Par exemple, si vous utilisez
une infrastructure de stockage LVM, les opérations suivantes
sont requises : Création
du groupe de volumes (VG) et des volumes logiques (LV) LVM (par
exemple, /dev/vgcsync/lvol1). Exportation/importation du
VG à l’échelle de la grappe. Définition d’un
système de fichiers sur le LV. Création du point
de montage du système de fichiers (par exemple,
/csync) à l’échelle de la grappe.
Les modèles par défaut supposent que vous
utilisez un stockage de type LVM. Pour utiliser VxVM ou un autre
stockage et des systèmes de fichiers à l’échelle
de la grappe, effectuez les modifications appropriées aux
modèles d’ensemble logiciel décrits ci-après. Vérifiez que le système de fichier
de l’ensemble logiciel est monté sur le membre
actuel. Par exemple, si vous utilisez LVM procédez comme
suit : # vgchange -a e /dev/vgcsync # mount -o rw,largefiles /dev/vgcsync/lvol1 /csync
Personnalisation initiale
du fichier de politique Créez un sous-répertoire
pour les fichiers maîtres de politique et les fichiers
de référence. Par exemple : # mkdir -p /csync/dsau/cfengine_master/master_files Ces exemples de répertoires sont ceux utilisés
par csync_wizard. Copiez les modèles par défaut
dans le répertoire des entrées du système
maître : # 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 |
Éditez update.conf. Le format de ce fichier est similaire à celui du
fichier de configuration principal de cfengine, cfagent.conf. Il est utilisé pour transférer et
mettre à jour les données binaires de cfengine
ainsi que les fichiers de définition de configuration mis à jour
(par exemple, cfagent.conf) sur les clients gérés. Afin d’éviter
toute erreur, il est important que ce fichier soit très
simple. Si ce fichier contient des erreurs, il sera nécessaire
d’effectuer une copie manuelle de la nouvelle version sur
chaque client géré. Ce fichier
contient des entités lexicales du type <%nom entité%> que csync_wizard remplacera par les réponses de l’administrateur
aux questions posées. Remplacez les entités lexicales
comme indiqué ci-après : Remplacez <%HOST_NAMER%> par
le nom d’hôte non qualifié de l’ensemble
logiciel Serviceguard. Remplacez <%DOMAIN_NAMER%> par
le nom de domaine DNS de l’ensemble logiciel. Par exemple : host_name = ( “package-hostname”) domain_name = ( “abc.xyz.com”) |
Notez que ce modèle de update.conf suppose que le serveur maître et ses clients
appartiennent tous à un même domaine DNS. Si votre
serveur maître comporte des clients gérés
dans plusieurs domaines DNS, modifiez update.conf comme suit : Remplacez <%HOST_NAMER%> par
le nom d’hôte complet de l’ensemble logiciel
Serviceguard. Supprimez la variable « domain_name ». Remplacez la ligne domain = ( “${domain_name}” ) par la ligne suivante : domain = ( ExecResult(/sbin/awk ‘/domain/ {print $2}’ /etc/resolv.conf) ) |
Cela permet de définir correctement la variable de
domaine du côté client.
Ces modifications de domaine doivent également être
effectuées dans cf.main et cfservd.conf. Reportez-vous aux sections suivantes. Utilisez l’indicateur -p (--parse-only) de cfagent pour vérifier la syntaxe de update.conf.
Répertoriez les
clients gérés dans cfrun.hosts cfrun exige que tous les clients gérés figurent
dans le fichier cfrun.hosts. Étant donné que chaque membre de
la grappe est considéré comme un client, vérifiez
qu’ils figurent tous dans /csync/dsau/cfengine_master/inputs/cfrun.hosts. Éditez-le et ajoutez les noms d’hôtes
de chaque membre (un par ligne). Il s’agit de la méthode
la plus simple de vous assurer que tous les noms d’hôtes
sont complets. Si vous utilisez des noms d’hôtes complets,
la ligne “domain =” n’est pas requise et peut être supprimée.
Si vous utilisez des noms d’hôtes non qualifiés, recherchez
la ligne “domain = <%DOMAIN_NAMER%>” et remplacez l’entité lexicale
par le domaine DNS des membres de la grappe. Cela implique que tous
les clients appartienne au même domaine. Modifiez le fichier maître
de politique Le fichier /var/opt/dsau/cfengine_master/inputs/cfagent.conf est le fichier principal de politique. Le fichier cfagent.conf par défaut contient le modèle par
défaut cf.main qui est un fichier modèle commenté comportant
des exemples d’actions de synchronisation communes pour
les systèmes autonomes et les grappes Serviceguard. Modifiez cf.main afin de remplacer les entités lexicales suivantes : cf.main contient les mêmes entités lexicales <%HOST_NAMER%> et <%DOMAIN_NAMER%> que update.conf. Effectuez les mêmes modifications que celles
décrites à l’étape 3 de la liste
précédente, « Personnalisation
initiale du fichier de politique ». Notez que ce modèle par défaut n’effectue
aucune action de gestion. Toutes les lignes d’actions sont
mises en commentaire. Ce modèle contient de nombreux exemples
spécifiques à la synchronisation des fichiers
dans une grappe Serviceguard. Il s’agit d’un point
de départ pour la création d’un ensemble
personnalisé de règles et d’actions de cfengine pour la grappe et les autres clients gérés. Le manuel de référence de cfengine décrivant la syntaxe et toutes les actions de
gestion possibles définies dans ce fichier figure dans
le répertoire /opt/dsau/doc/cfengine. D’autres exemples de fichiers de configuration de
cfengine fournis avec la distribution ouverte de cfengine figurent
dans le répertoire /opt/dsau/share/cfengine/examples. Modifiez le fichier cfservd.conf Le fichier /var/opt/dsau/cfengine_master/inputs/cfservd.conf contrôle les clients gérés
qui peuvent accéder aux fichiers gérés
par cfservd sur le serveur maître. Effectuez les modifications
suivantes dans cfservd.conf. Supprimez totalement la ligne suivante : domain_name = ( “<%DOMAIN_NAMER%>” ) Modifiez l’affichage de la ligne domain = ( “${domain_name}” ) en : domain = ( ExecResult(/sbin/awk ‘/domain/ {print $2}’ /etc/resolv.conf) ) La strophe « admit: » définit les clients
pouvant accéder aux fichiers sur le serveur. Remplacez
chaque « *.${domain_name} » par une liste des domaines
DNS des clients gérés, séparés
par un espace. Par exemple : /var/opt/dsau/cfengine_master/master_files *.abc.xyz.com *.cde.xyz.com Cet exemple permet à tous les hôtes figurant
dans les domaines repertoriés d'accéder aux fichiers
du serveur maître. Vous pouvez également spécifier
des listes d'hôtes spécifiques, des plages d'adresses
IP, etc. Pour plus d'informations, reportez-vous au manuel de reférence
de cfengine.
Distribuez le fichier update.conf maître à chaque membre de la grappe Utilisez les commandes suivantes : # cd /var/opt/dsau/cfengine/master_files/inputs # ccp update.conf /var/opt/dsau/cfengine/inputs/ cfengine se chargera de distribuer les fichiers restants à l’échelle
de la grappe et à tous les clients gérés. Distribuez les clés
de sécurité de cfengine Étant donné que cfengine utilise un modèle d’échange
de clés publiques/privées pour authentifier les
clients gérés, il est nécessaire de configurer
une clé associée à l’adresse
IP relocalisable de l’ensemble logiciel. Cette adresse
est celle vue comme serveur maître par les clients distants. Étant
donné que tout membre de la grappe peut devenir le nœud
adoptif, cette clé doit être identique sur tous
les membres de la grappe. La commande cfkey de cfengine génère une paire de clés publiques/privées
pour le système actuel. cfkey crée les fichiers localhost.priv et localhost.pub. cfengine exige que les clés soient nommées selon
la convention suivante : nom_utilisateur-adresse IP.pub Par exemple : root-10.0.0.3.pub L’administrateur copie la clé localhost.pub sur le nom correct en fonction de l’adresse
IP du système. Dans le cas d’une grappe, les clés du
membre actuel sont utilisées pour générer
les clés à l’échelle de la grappe
selon la procédure suivante : Utilisez cfkey pour créer la paire de clés publiques
et privées du membre de la grappe : # mkdir -p /var/opt/dsau/cfengine/ppkeys # cd /var/opt/dsau/cfengine/ppkeys # /opt/dsau/sbin/cfkey |
Cette commande permet de créer les clés localhost.priv et localhost.pub. La clé publique, localhost.pub, est ensuite copiée sur root-adresse IP de l’ensemble logiciel.pub. Par exemple, # cp localhost.pub root-10.116.9.74.pub |
où 10.116.9.74 correspond à l’adresse
IP relocalisable de l’ensemble logiciel csync. La clé localhost.pub de ce membre est ensuite utilisée pour créer
les clés spécifiques de chaque membre : # cp localhost.pub root-adresse IP membre1.pub # cp localhost.pub root-adresse IP membre2.pub # cp localhost.pub root-adresse IP membre3.pub ... # cp localhost.pub root-adresse IP membreN.pub |
Enfin, toutes les clés sont copiées
sur chaque membre. # ccp * /var/opt/dsau/cfengine/ppkeys |
Remarque : ccp, qui est une commande de l’utilitaire Command Fanout,
effectue une copie de la grappe, en copiant une commande sur tous
les membres de cette grappe.
Configurez et lancez cfservd Configurez le
démon cfservd de manière à le lancer au démarrage
du système. Éditez /etc/rc.config.d/cfservd et modifiez la ligne CSYNC_CONFIGURED=0 en CSYNC_CONFIGURED=1. Répercutez cette modification à l’échelle
de la grappe : # ccp /etc/rc.config.d/cfservd /etc/rc.config.d/cfservd |
Sur le serveur maître, lancez cfservd : # /sbin/init.d/cfservd start |
Recommencez l’opération sur les
autres membres de la grappe. Si vous avez configuré la
grappe pour une utilisation avec les outils de déploiement
de commande DSAU, utilisez la commande suivante pour lancer les
démons à l’échelle de la grappe : # cexec /sbin/init.d/cfservd start |
Créez l’ensemble
logiciel csync Pour créer l’ensemble logiciel de synchronisation
de configuration, modifiez les fichiers modèles par défaut
en fonction de votre environnement Serviceguard. Notez que l’ensemble
logiciel doit impérativement s’appeller csync.
Dans le cas contraire, les opérations automatisées
de Serviceguard échoueront. Pour plus de détails,
reportez-vous à la section « Fonctions
d’automatisation de Serviceguard ». Tout d’abord, effectuez les modifications décrites
ci-après. Créez le répertoire
de l’ensemble logiciel à l’échelle
de la grappe : # cexec mkdir /etc/cmcluster/csync |
Copiez le fichier modèle ASCII de l’ensemble
logiciel et le script de contrôle correspondant dans le
répertoire /etc/cmcluster/cysnc du membre actuel : # 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 |
Éditez le fichier
de configuration ASCII de l’ensemble logiciel csync.conf afin de remplacer les entités lexicales de
paramètres fictifs par les valeurs correspondantes. Les
entités lexicales sont du type <%nom entité%>. Recherchez la ligne « SUBNET <%SG_PKG_SUBNET%> » et remplacez l’entité lexicale
par le sous-réseau de l’ensemble logiciel
csync. Utilisez netstat -i pour identifier le sous-réseau. Éditez le script de contrôle de
l’ensemble logiciel et remplacez les paramètres
fictifs par les valeurs correspondantes. Remarque : Le modèle de script par défaut
suppose que vous utilisez une configuration de stockage de type
LVM. Si vous utilisez VxVM et/ou CFS, reportez-vous à la
documentation Managing Serviceguard pour
plus de détails sur la configuration des ensembles logiciels à l’aide
de ces technologies. Vous devrez mettre les éléments
LVM du modèle décrit ci-après en commentaire
et indiquer les strophes VxVM ou CFS correspondantes. Recherchez
la ligne « VG[0]=“<%SG_PKG_VOL_GRP%>” » et remplacez l’entité lexicale
par le nom du groupe de volumes LVM de l’ensemble logiciel.
Par exemple, VG[0]“vgcsync”. Recherchez la ligne « LV[0]=“<%SG_PKG_LOG_VOL%>” » et remplacez l’entité lexicale
par le nom complet du volume logique. Par exemple, LV[0]=“/dev/vgcsync/lvol1”. Recherchez la ligne « FS[0]=“<%SG_PKG_FS%>” » et remplacez l’entité lexicale
par le nom du point de montage du système de fichiers créé pour
cet ensemble logiciel. Par exemple, FS[0]=“/csync”. Notez que ce point de montage doit avoir été créé sur
chaque membre de la grappe dans le cadre de la configuration de stockage
décrite plus haut. Recherchez la ligne « FS_MOUNT_OPT[0]=“<%SG_PKG_MNT_OPT%>” » et remplacez l’entité lexicale
par les options de montage du système de fichiers. Par
exemple, FS_MOUNT_OPT[0]=“-o rw,largefiles”. Recherchez la ligne « FS_TYPE[0]=“<%SG_PKG_FS_TYPE%>” »et remplacez l’entité lexicale
par le type de système de fichiers. Par exemple,
FS_TYPE[0]=“vxfs”. Recherchez la ligne « FS_UMOUNT_OPT[0]=“<%SG_PKG_FS_UMOUNT_OPT%>” » et remplacez l’entité lexicale
par les options umount éventuelles du système de fichiers.
S’il n’existe aucune option umount spéciale,
l’entité lexicale peut être supprimée
et l’option peut rester vide. Par exemple, FS_UMOUNT_OPT[0]=“”. Recherchez la ligne « FS_FSCK_OPT[0]=“<%SG_PKG_FS_FSCK_OPT%>” » et remplacez l’entité lexicale
par les options fsck éventuelles spécifiques au système
de fichiers. Comme ci-dessus, vous pouvez supprimer l’entité lexicale
et laisser cette option vide. Par exemple, FS_FSCK_OPT[0]=“”. Recherchez la ligne « IP[0]=“<%SG_PKG_IP%>” »et remplacez l’entité lexicale
par l’adresse IP de l’ensemble logiciel csync. Par exemple, IP[0]= 123.456.789.3. Recherchez la ligne « SUBNET[0]=“<%SG_PKG_SUBNET%>” »et remplacez l’entité lexicale
par le sous-réseau de l’adresse IP de l’ensemble
logiciel. Utilisez netstat -i pour définir le sous-réseau. Par exemple,
SUBNET[0]= 123.456.789.0.
Distribuez le script de contrôle de l’ensemble
logiciel et les fichiers de configuration ASCII correspondants à l’échelle
de la grappe : # ccp csync csync.conf /etc/cmcluster/csync/ Appliquez l’ensemble logiciel et lancez-le : # cmapplyconf -P csync.conf # cmmodpkg -e csync
Testez la configuration
de l’ensemble logiciel csync Pour tester la configuration, procédez comme suit : Sur un client géré,
exécutez la commande suivante : # cfagent --no-lock --verbose --no-splay Le mode prolixe affiche le client et recherche les copies
mises à jour des fichiers maîtres de politique,
les copie dans /var/opt/cfengine/inputs le cas échéant, puis exécute
le contenu de cfagent.conf/cf.main. Sur le serveur maître, testez la commande cfrun : # cfrun -- --inform --inform demande au cfagent distant d’utiliser l’indicateur --inform afin de générer des messages pour toutes
les modifications effectuées par cfengine sur le système. Pour plus d’informations,
la commande --verbose peut également s’avérer utile : # cfrun -v -- --verbose L’option -v demande à cfrun d’être plus
prolixe et la commande --verbose est transmise au cfagent distant. Pour plus d’informations sur le dépannage,
reportez-vous à la section « Dépannage
de cfengine ».
Configuration
d’un client géré de synchronisationLes principales étapes de configuration manuelle
des clients gérés sont les suivantes : Échange
des clés de sécurité. Cette opération établit
une relation sécurisée entre le client géré et
le serveur maître. Copie de update.conf du serveur maître vers le client géré. Définition d’un
planning d’exécution des opérations de synchronisation
par cfagent.
Afin de configurer une grappe Serviceguard en tant que client
d’un serveur maître cfengine existant, puis de traiter chaque membre de la grappe
comme s’il s’agissait d’un système
autonome configuré individuellement. Si vous ajoutez de
nouveaux membres à la grappe, vous devez configurer chacun
d’entre eux en conséquence.Si vous ajoutez un
nouveau membre à une grappe Serviceguard et si cette grappe
exécute l’ensemble logiciel csync, les membres de la grappe sont automatiquement configurés
comme clients gérés par cfengine. Dans ce scénario, l’ensemble logiciel csync fonctionne comme serveur maître. Les nouveaux
membres seront automatiquement configurés comme clients
gérés et pourront traiter la reprise automatique
de l’ensemble logiciel. Avant d’ajouter le membre à la
grappe, vous devez configurer l’infrastructure de stockage
et le système de fichiers de l’ensemble logiciel. Pour
ajouter un nouveau client géré, vous devez tout
d’abord configurer la relation sécurisée
entre le client et le serveur maître. Les deux systèmes échangent
des clés de sécurité qui leur permettent
de s’authentifier. La clé publique du serveur
maître doit être copiée sur le client
et la clé publique du client est copiée sur le
serveur maître : En tant qu’utilisateur
root, créez la clé de sécurité du
client à l’aide de cfkey : # mkdir -p /var/opt/cfengine/ppkeys # cd /var/opt/cfengine/ppkeys # /opt/dsau/sbin/cfkey |
Cette opération permet de créer les fichiers localhost.pub et localhost.priv du client. Copiez la clé du
client sur le serveur maître. Le serveur maître utilise
la convention de dénomination suivante pour les clés
des clients : <nom_utilisateur>-<adresse_IP_client>.pub. Installez la clé publique du client dans
le répertoire ppkeys du serveur maître, conformément à la
convention de dénomination suivante : # scp localhost.pub serveur_maître:\ /var/opt/cfengine/ppkeys/root-adresse_IP_client.pub |
Remarquez qu’il est important d’utiliser
un utilitaire du type copie sécurisée (voir scp(1))
pour le transfert de la clé, afin de protéger
son intégrité. Enfin, copiez la clé du serveur maître
sur le client géré : # scp serveur_maître:/var/opt/cfengine_master/ppkeys/localhost.pub \ root-adresse_IP_maître.pub |
Puis, copiez le fichier update.conf du serveur maître
sur le client géré : # mkdir -p /var/opt/dsau/cfengine/inputs # cd /var/opt/dsau/cfengine/master_files/inputs # cd /var/opt/dsau/cfengine/inputs # scp serveur_maître:/var/opt/dsau/cfengine/inputs/update.conf ./update.conf |
Pour permettre à ce client d’accepter les
demandes de cfrun, procédez comme suit : Éditez
/etc/rc.config.d/cfservd et appliquez la valeur « 1 » à la variable CSYNC_CONFIGURED ; cette option permettra de lancer cfservd lors de l’amorçage du système. Lancez cfservd : # /sbin/init.d/cfservd start Testez la configuration à l’aide
de cfagent (voir cfagent(8)): # cfagent --no-lock --verbose --no-splay Le mode prolixe affiche le client et recherche les copies
mises à jour des fichiers maîtres de politique,
les copie dans /var/opt/cfengine/inputs le cas échéant, puis exécute
le contenu de cfagent.conf/cf.main.
Pour plus d’informations sur le dépannage,
reportez-vous à la section « Dépannage
de cfengine ». Choix d’une
méthode d’appel de synchronisationEn tant qu’administrateur, vous pouvez diffuser les
modifications aux clients gérés à l’aide
de la commande cfrun (voir cfrun(8)). cfrun contacte le démon cfservd sur chaque client géré et cfservd appelle cfagent pour effectuer le travail de synchronisation. Vous pouvez également
choisir d’exécuter cfagent à intervalles réguliers sur le client.
Deux méthodes sont possibles : Exécution de cfagent à partir d’une tâche cron. Pour exécuter cfagent à partir de cron, vous devez l’appeler à l’aide de cfexecd -F. Un exemple d’entrée crontab est donné ci-après : 0 * * * * /var/opt/dsau/cfengine/bin/cfexecd -F Cette entrée crontab entraîne l’exécution de cfagent toutes les heures. Dans cet exemple, cfexecd (voir cfexecd(8)) permet de conditionner cfagent et recueille tous les résultats pour les enregistrer
dans /var/opt/dsau/cfengine/outputs. cfexecd peut également envoyer un e-mail à l’administrateur
si cette option est sélectionnée dans le fichier cfagent.conf. Pour plus de détails, reportez-vous au manuel
de référence de cfengine dans le répertoire /opt/dsau/doc/cfengine. Notez que le fichier cf.main par défaut contient un exemple d’ajout automatique
de la ligne précédente au fichier crontab de chaque client géré. Exécution de cfexecd en mode démon. cfexecd offre des fonctionnalités de type cron basées sur les classes temporelles de cfengine et peut être utilisé à la
place de cron afin d’exécuter cfagent. Par défaut, cfexecd exécute cfengine toutes les heures. Si vous êtes novice dans
l’utilisation de
|