Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docpublic:systemes:linux:cfengine [2012/06/25 08:28]
PROCACCIA
docpublic:systemes:linux:cfengine [2012/06/25 08:54] (current)
PROCACCIA [cfengine par la pratique]
Line 1: Line 1:
 ===== cfengine par la pratique ===== ===== cfengine par la pratique =====
-doc du 16 mai 2005 reprise dans dokuwiki.+doc mai 2005 reprise dans dokuwiki.
  
-Table des matières 
  
-    1  Introduction +===== Résumé ===== 
-     Installation + Ce document décrit pas à pas la mise en place de cfengine. Il s'attache simplement à installer et configurer un serveur de strategie cfengine et de lui associer un client sur lequel sera installé et deployé cfengine. Enfin appliquera de façon réguliere les choix de strategie centrale de configurations. 
-        2.1  Installation rpm +
-        2.2  Contenu du répertoire principal +
-        2.3  Services utilisés  +
-    3  Configuration +
-        3.1  Principe de configuration +
-        3.2  Distribution de la configuration +
-        3.3  update.conf  +
-    4  Cle cfengine +
-    5  Configuration du serveur cfservd +
-        5.1  Définition du cfservd.conf +
-        5.2  Lancement de cfservd  +
-    6  Firewall iptables +
-    7  Client cfengine +
-        7.1  Installation cfengine packagé sur le client +
-        7.2  Cle serveur +
-        7.3  Fichiers de configuration +
-        7.4  Distribution initiale +
-        7.5  Initialisation / Déploiement des fichiers sur le client +
-        7.6  Clé du client +
-        7.7  Echange de clé entre client et serveur +
-            7.7.1  Echange manuel +
-            7.7.2  Echange automatique de confiance  +
-        7.8  Deploiement effectif initial  +
-    8  Exemple pratique de strategie +
-        8.1  Fichier cfagent.conf +
-        8.2  Classes de machines +
-        8.3  Configuration générale +
-        8.4  Configuration propre aux machines linux +
-        8.5  Fichier sources du serveur +
-        8.6  Lancement du client  +
-    9  Package RPM maison de cfengine +
-    10  Configurations évoluées +
-        10.1  Gestion des packages +
-        10.2  Pluggins maison  +
- +
-    Résumé : Ce document décrit pas à pas la mise en place de cfengine. Il s'attache simplement à installer et configurer un serveur de strategie cfengine et de lui associer un client sur lequel sera installé et deployé cfengine. Enfin appliquera de façon réguliere les choix de strategie centrale de configurations. +
  
 ===== Introduction ===== ===== Introduction =====
Line 109: Line 72:
  
 ====  Distribution de la configuration ==== ====  Distribution de la configuration ====
-Afin d'eviter de ``scier la branche sur laquelle on est assis'' !, bref d'eviter par une erreure de syntaxe de casser le bon fonctionnement de cfengine et ainsi rendre incapables toutes les machines du parc de s'autocorriger, on va ditribuer les fichiers de configuration à partir d'une configuration cfengine tres simple et quasi immuable . C'est pour cela que le client cfagent lit et execute le fichier update.conf avant de se lancer sur (le vif du sujet !) cfagent.conf . De plus , pour rendre plus lisible et plus modulaire le fichiers de configuration cfagent.conf, ce dernier sera eclaté en sous fichiers spécifiques, le fichier cfagent.conf se chargant de faire un include (import) des sous fichiers. Sur le serveur, on créera un répertoire /var/cfengine/masterinputs qui contiendra le cfagent.conf et ses inclusions.+Afin d'eviter de scier la branche sur laquelle on est assis !, bref d'eviter par une erreure de syntaxe de casser le bon fonctionnement de cfengine et ainsi rendre incapables toutes les machines du parc de s'autocorriger, on va ditribuer les fichiers de configuration à partir d'une configuration cfengine tres simple et quasi immuable . C'est pour cela que le client cfagent lit et execute le fichier update.conf avant de se lancer sur (le vif du sujet !) cfagent.conf . De plus , pour rendre plus lisible et plus modulaire le fichiers de configuration cfagent.conf, ce dernier sera eclaté en sous fichiers spécifiques, le fichier cfagent.conf se chargant de faire un include (import) des sous fichiers. Sur le serveur, on créera un répertoire /var/cfengine/masterinputs qui contiendra le cfagent.conf et ses inclusions.
  
 ==== update.conf ==== ==== update.conf ====
Line 210: Line 173:
  
 ===== Configuration du serveur cfservd ===== ===== Configuration du serveur cfservd =====
-Lancement du serveur de fichier cfservd sur le serveur cfengine. 
  
 +Lancement du serveur de fichier cfservd sur le serveur cfengine.
 +<code>
 [root@calaz /var/cfengine] [root@calaz /var/cfengine]
 $ /var/cfengine/sbin/cfservd -F -d 2 $ /var/cfengine/sbin/cfservd -F -d 2
Line 224: Line 188:
 (END OF PARSING /var/cfengine/inputs/cfservd.conf) (END OF PARSING /var/cfengine/inputs/cfservd.conf)
 Finished with /var/cfengine/inputs/cfservd.conf Finished with /var/cfengine/inputs/cfservd.conf
 +</code>
  
 On voit clairement qu'il manque le fichier de configuration cfservd.conf . On voit clairement qu'il manque le fichier de configuration cfservd.conf .
  
-5.1  Définition du cfservd.conf+==== Définition du cfservd.conf ====
  
 +
 +<code>
 [root@calaz /var/cfengine/inputs] [root@calaz /var/cfengine/inputs]
 $ cat cfservd.conf $ cat cfservd.conf
Line 260: Line 226:
 /var/cfengine/data 157.159.27.* /var/cfengine/data 157.159.27.*
 /var/cfengine/data 157.159.50.* /var/cfengine/data 157.159.50.*
 +</code>
  
 +==== Lancement de cfservd ====
  
-5.2  Lancement de cfservd +<code>
 [root@calaz /var/cfengine/inputs] [root@calaz /var/cfengine/inputs]
 $ /var/cfengine/sbin/cfservd -F -d 2 $ /var/cfengine/sbin/cfservd -F -d 2
Line 288: Line 255:
 Listening for connections ... Listening for connections ...
 Checking file updates on /var/cfengine/inputs/cfservd.conf (4284bfe4/4284c008) Checking file updates on /var/cfengine/inputs/cfservd.conf (4284bfe4/4284c008)
 +</code>
  
 +Effectivement le serveur c'est bindé en ipv6 ! sur le port cfengine (tcp:5308)
  
-Effectivement le serveur c'est ``bindé'' en ipv6 ! sur le port cfengine (tcp:5308) +<code>
 [root@calaz /var/cfengine/inputs] [root@calaz /var/cfengine/inputs]
 $ lsof -i tcp | grep cfser $ lsof -i tcp | grep cfser
 cfservd   14660    root    4u  IPv6 279008       TCP *:cfengine (LISTEN) cfservd   14660    root    4u  IPv6 279008       TCP *:cfengine (LISTEN)
 +</code>
  
 Le serveur cfengine est maintenant opérationnel, il écoute sur le port 5308 et s'apprete a recevoir des connexions depuis les reseaux ip 157.159.27.0/24 et 50.0/24 tels que demandé dans le fichier de configuration cfservd.conf Le serveur cfengine est maintenant opérationnel, il écoute sur le port 5308 et s'apprete a recevoir des connexions depuis les reseaux ip 157.159.27.0/24 et 50.0/24 tels que demandé dans le fichier de configuration cfservd.conf
-6  Firewall iptables+ 
 +===== Firewall iptables ===== 
 On viens de le voir, le serveur écoute sur le port 5308, il faut donc prévoir d'ouvrir son firewall en conséquance. Pour preuve, voici l'exemple de lancement d'un client (arvouin) sans ouverture du port en question: On viens de le voir, le serveur écoute sur le port 5308, il faut donc prévoir d'ouvrir son firewall en conséquance. Pour preuve, voici l'exemple de lancement d'un client (arvouin) sans ouverture du port en question:
  
 +<code>
 [root@arvouin /var/cfengine/inputs] [root@arvouin /var/cfengine/inputs]
 $/var/cfengine/sbin/cfagent -q -v $/var/cfengine/sbin/cfagent -q -v
Line 306: Line 277:
 Connect to calaz.int-evry.fr = 157.159.50.197 on port cfengine Connect to calaz.int-evry.fr = 157.159.50.197 on port cfengine
 cfengine:: Time out cfengine:: Time out
 +</code>
  
 Ouverture du port. Ouverture du port.
  
 +<code>
 [root@calaz /var/cfengine] [root@calaz /var/cfengine]
 $ grep 5308 /etc/sysconfig/iptables $ grep 5308 /etc/sysconfig/iptables
Line 315: Line 287:
 [root@calaz /var/cfengine] [root@calaz /var/cfengine]
 $ /etc/init.d/iptables restart $ /etc/init.d/iptables restart
 +</code>
  
 +=====  Client cfengine =====
  
-7  Client cfengine +====  Installation cfengine packagé sur le client ====
-7.1  Installation cfengine packagé sur le client+
  
 +<code>
 [root@arvouin /var] [root@arvouin /var]
 $rpm -Uvh /root/cfengine-2.1.14-1_int_sample.i386.rpm $rpm -Uvh /root/cfengine-2.1.14-1_int_sample.i386.rpm
 Préparation...              ########################################### [100%] Préparation...              ########################################### [100%]
    1:cfengine               ########################################### [100%]    1:cfengine               ########################################### [100%]
 +</code>
  
 +==== Cle serveur ====
  
-7.2  Cle serveur 
 La clé du serveur a bien été intégrée par le package: La clé du serveur a bien été intégrée par le package:
  
 +<code>
 [root@arvouin /var/cfengine] [root@arvouin /var/cfengine]
 $ls ppkeys/ $ls ppkeys/
 root-157.159.50.197.pub root-157.159.50.197.pub
 +</code>
  
- +==== Fichiers de configuration ====
-7.3  Fichiers de configuration+
 Pour le momment il n'y a rien, c'est au premier lancement de cfagent que l'update.conf assurera le transfert des fichiers de configuration depuis le serveur central. Pour le momment il n'y a rien, c'est au premier lancement de cfagent que l'update.conf assurera le transfert des fichiers de configuration depuis le serveur central.
  
 +<code>
 [root@arvouin /var/cfengine/inputs] [root@arvouin /var/cfengine/inputs]
 $ls $ls
 +</code>
  
- +====  Distribution initiale ====
-7.4  Distribution initiale+
 Voici le contenu du répertoire principal apres l'installation du package RPM. Voici le contenu du répertoire principal apres l'installation du package RPM.
  
 +<code>
 [root@arvouin /var/cfengine] [root@arvouin /var/cfengine]
 $ls -R $ls -R
Line 377: Line 355:
 cf.groups.example              cf.services.example   README cf.groups.example              cf.services.example   README
 cf.linux.example               cf.site.example       update.conf.example cf.linux.example               cf.site.example       update.conf.example
 +</code>
  
- +====  Initialisation / Déploiement des fichiers sur le client ====
-7.5  Initialisation / Déploiement des fichiers sur le client+
 Afin que les fichiers de strategies soient deployés sur le client, il faut que ce dernier dispose d'une copie du fichier de distribution de ces fichiers -> le fichier update.conf evoqué auparavant lors de sa conception sur le serveur central de configuration cfengine. Afin que les fichiers de strategies soient deployés sur le client, il faut que ce dernier dispose d'une copie du fichier de distribution de ces fichiers -> le fichier update.conf evoqué auparavant lors de sa conception sur le serveur central de configuration cfengine.
 Exemple de ditribution par simple copie manuelle, l'idéal étant d'integrer ce fichier dans le package RPM cfengine qui sera installé sur les clients. Exemple de ditribution par simple copie manuelle, l'idéal étant d'integrer ce fichier dans le package RPM cfengine qui sera installé sur les clients.
  
 +<code>
 [root@arvouin /var/cfengine] [root@arvouin /var/cfengine]
 $scp root@calaz:/var/cfengine/masterinputs/update.conf ./inputs/ $scp root@calaz:/var/cfengine/masterinputs/update.conf ./inputs/
 +</code>
  
- +==== Clé du client ====
-7.6  Clé du client+
 Si on lance tout de suite un cfagent (-parse et -verbose ) on constate ceci: Si on lance tout de suite un cfagent (-parse et -verbose ) on constate ceci:
  
 +<code>
 [root@arvouin /var/cfengine/inputs] [root@arvouin /var/cfengine/inputs]
 $/var/cfengine/sbin/cfagent -p -v $/var/cfengine/sbin/cfagent -p -v
Line 401: Line 381:
 cfengine:: Couldn't find a private key (/var/cfengine/ppkeys/localhost.priv) - use cfkey to get one cfengine:: Couldn't find a private key (/var/cfengine/ppkeys/localhost.priv) - use cfkey to get one
 cfengine:: open: No such file or directory cfengine:: open: No such file or directory
 +</code>
  
 +En effet il manque la paire de clé sur le client. Pour la démonstration nous la générons ici manuellement. Dans le cadre d'un deploiement industriel on assurera la création automatique de cette clé par un script (dans notre RPM; cfinit) qui se chargera au premier boot de la station fraichement installée de lancer le cfkey).
  
-En effet il manque la paire de clé sur le client. Pour la démonstration nous la générons ici manuellement. Dans le cadre d'un deploiement ``industriel'' on assurera la création automatique de cette clé par un script (dans notre RPM; cfinit) qui se chargera au premier boot de la station fraichement installée de lancer le cfkey). +<code>
 [root@arvouin /var/cfengine/inputs] [root@arvouin /var/cfengine/inputs]
 $/var/cfengine/sbin/cfkey $/var/cfengine/sbin/cfkey
Line 410: Line 391:
 Writing private key to /var/cfengine/ppkeys/localhost.priv Writing private key to /var/cfengine/ppkeys/localhost.priv
 Writing public key to /var/cfengine/ppkeys/localhost.pub Writing public key to /var/cfengine/ppkeys/localhost.pub
 +</code>
  
- +====  Echange de clé entre client et serveur ====
-7.7  Echange de clé entre client et serveur+
 Pour que la communication entre le client et le serveur cfengine se fasse, les deux machines s'authentifient mutuellement. Le client dispose de la clé publique du serveur avec laquelle il signe l'echange, ce sera au serveur cfengine de verifier cette signature avec sa clé privé. De meme le serveur doit disposer de la clé publique du client afin de proceder à la même verification en sens inverse . Ici le client dispose bien de la clé publique du serveur root-157.159.50.197.pub (distribuée par notre package RPM, sinon il faut faire un scp vers chaque clients ..) Pour que la communication entre le client et le serveur cfengine se fasse, les deux machines s'authentifient mutuellement. Le client dispose de la clé publique du serveur avec laquelle il signe l'echange, ce sera au serveur cfengine de verifier cette signature avec sa clé privé. De meme le serveur doit disposer de la clé publique du client afin de proceder à la même verification en sens inverse . Ici le client dispose bien de la clé publique du serveur root-157.159.50.197.pub (distribuée par notre package RPM, sinon il faut faire un scp vers chaque clients ..)
  
 +<code>
 [root@arvouin /var/cfengine/ppkeys] [root@arvouin /var/cfengine/ppkeys]
 $/var/cfengine/sbin/cfagent  -q -v $/var/cfengine/sbin/cfagent  -q -v
Line 424: Line 406:
 cfengine:: Authentication dialogue with calaz.int-evry.fr failed cfengine:: Authentication dialogue with calaz.int-evry.fr failed
 cfengine:: Unable to establish connection with calaz.int-evry.fr (failover) cfengine:: Unable to establish connection with calaz.int-evry.fr (failover)
 +</code>
  
 En revanche, le serveur ne dispose pas encore de la clé publique de ce client !. En revanche, le serveur ne dispose pas encore de la clé publique de ce client !.
-7.7.1  Echange manuel+ 
 +===  Echange manuel === 
 Nous pouvons proceder à un transfert manuelle de la clé du client vers le serveur : Nous pouvons proceder à un transfert manuelle de la clé du client vers le serveur :
  
 +<code>
 [root@arvouin /var/cfengine/ppkeys] [root@arvouin /var/cfengine/ppkeys]
 $scp localhost.pub root@calaz:/var/cfengine/ppkeys/root-157.159.27.199.pub $scp localhost.pub root@calaz:/var/cfengine/ppkeys/root-157.159.27.199.pub
 root@calaz's password: root@calaz's password:
 localhost.pub                                 100%  426     1.1MB/  00:00 localhost.pub                                 100%  426     1.1MB/  00:00
 +</code>
  
 Mais cela n'est pas tres industrialisable ! Mais cela n'est pas tres industrialisable !
  
-7.7.2  Echange automatique de confiance+===  Echange automatique de confiance ===
 On peux autrement déclarer dans le fichier de configuration du serveur cfservd que l'on accepte de recevoir des clé publiques des machines que nous allons gerer (exemple ici le sous reseau 157.159.50.27.0/24 ) On peux autrement déclarer dans le fichier de configuration du serveur cfservd que l'on accepte de recevoir des clé publiques des machines que nous allons gerer (exemple ici le sous reseau 157.159.50.27.0/24 )
  
 +<code>
 $ grep Trust /var/cfengine/inputs/cfservd.conf $ grep Trust /var/cfengine/inputs/cfservd.conf
   TrustKeysFrom = ( 157.159.27.0/24 )   TrustKeysFrom = ( 157.159.27.0/24 )
Line 452: Line 438:
    
 IP: 157.159.27.0/24 IP: 157.159.27.0/24
 +</code>
  
 Répertoire des cles sur le serveur avant le lancement du client: Répertoire des cles sur le serveur avant le lancement du client:
  
 +<code>
 [root@calaz /var/cfengine/ppkeys] [root@calaz /var/cfengine/ppkeys]
 $ ls $ ls
 localhost.priv  localhost.pub  root-157.159.50.197.pub localhost.priv  localhost.pub  root-157.159.50.197.pub
 +</code>
  
 Lancement du client Lancement du client
 +<code>
 [root@arvouin /var/cfengine/inputs] [root@arvouin /var/cfengine/inputs]
 $/var/cfengine/sbin/cfagent -q -v $/var/cfengine/sbin/cfagent -q -v
Line 477: Line 464:
 Did not have key root-157.159.27.199 Did not have key root-157.159.27.199
 cfservd: Weak authentication of trusted client arvouin.int-evry.fr/::ffff:157.159.27.199 (key accepted on trust). cfservd: Weak authentication of trusted client arvouin.int-evry.fr/::ffff:157.159.27.199 (key accepted on trust).
 +</code>
  
 Répertoire de clés sur le serveur apres le lancement du client: Répertoire de clés sur le serveur apres le lancement du client:
 +<code>
 [root@calaz /var/cfengine/ppkeys] [root@calaz /var/cfengine/ppkeys]
 $ ls $ ls
 localhost.priv  localhost.pub  root-157.159.27.199.pub  root-157.159.50.197.pub localhost.priv  localhost.pub  root-157.159.27.199.pub  root-157.159.50.197.pub
 +</code>
  
 On y retrouve bien le clé du client root-157.159.27.199.pub . On y retrouve bien le clé du client root-157.159.27.199.pub .
  
-7.8  Deploiement effectif initial+====  Deploiement effectif initial ====
 Maintenant que tout est correctement configuré, nous pouvons relancer l'agent avec succes: Maintenant que tout est correctement configuré, nous pouvons relancer l'agent avec succes:
  
 +<code>
 [root@arvouin /var/cfengine/ppkeys] [root@arvouin /var/cfengine/ppkeys]
 $/var/cfengine/sbin/cfagent  -q -v $/var/cfengine/sbin/cfagent  -q -v
Line 527: Line 515:
 cfengine:: source=/var/cfengine/masterinputs/cfservd.conf, dest=/var/cfengine/inputs cfengine:: source=/var/cfengine/masterinputs/cfservd.conf, dest=/var/cfengine/inputs
 Saving the setuid log in /var/cfengine/cfagent.arvouin.int-evry.fr.log Saving the setuid log in /var/cfengine/cfagent.arvouin.int-evry.fr.log
 +</code>
  
 La copie des fichiers réalisés par update.conf a bien eu lieu . Cfagent poursuis sur le vif du sujet , l'excution du cfagent.conf local fraichement mis à jour par l'update.conf !: La copie des fichiers réalisés par update.conf a bien eu lieu . Cfagent poursuis sur le vif du sujet , l'excution du cfagent.conf local fraichement mis à jour par l'update.conf !:
  
 +<code>
  * (Changing context state to: main) *  * (Changing context state to: main) *
  
Line 568: Line 557:
 cfengine:arvouin: Linking files /usr/local/bin/tcsh -> /bin/tcsh cfengine:arvouin: Linking files /usr/local/bin/tcsh -> /bin/tcsh
 cfengine:arvouin: Linking files /usr/local/bin/bash -> /bin/bash cfengine:arvouin: Linking files /usr/local/bin/bash -> /bin/bash
 +</code>
  
 La strategie de configuration cliente c'est donc executée dans la foulée ... nous y reviendrons apres . La strategie de configuration cliente c'est donc executée dans la foulée ... nous y reviendrons apres .
Line 574: Line 563:
 Verification de la présence des fichiers de source masterinputs du serveur sur la destination inputs sur le client: Verification de la présence des fichiers de source masterinputs du serveur sur la destination inputs sur le client:
  
 +<code>
 [root@arvouin /var/cfengine/ppkeys] [root@arvouin /var/cfengine/ppkeys]
 $ls ../inputs/ $ls ../inputs/
 cfagent.conf  cf.linux  cfservd.conf  update.conf.cfsaved cfagent.conf  cf.linux  cfservd.conf  update.conf.cfsaved
 cf.groups     cf.main   update.conf cf.groups     cf.main   update.conf
 +</code>
  
 Remarque; la version anterieur d'un fichier déjà présent et renomée en .cfsaved Remarque; la version anterieur d'un fichier déjà présent et renomée en .cfsaved
  
- Exemple pratique de strategie+=====  Exemple pratique de strategie ===== 
 Nous montrons ici le début d'un configuration plus industrielle avec quelques exemples stratégiques. Nous montrons ici le début d'un configuration plus industrielle avec quelques exemples stratégiques.
  
-8.1  Fichier cfagent.conf+====  Fichier cfagent.conf ====
 Nous éclatons le fichier cfagent.conf en sous éléments par le biais le l'import des sous fichiers. Nous éclatons le fichier cfagent.conf en sous éléments par le biais le l'import des sous fichiers.
  
 +<code>
 $ cat cfagent.conf $ cat cfagent.conf
 ################################################## ##################################################
Line 600: Line 592:
         linux::         linux::
                 cf.linux                 cf.linux
 +</code>
  
- +====  Classes de machines ====
-8.2  Classes de machines+
 Le premier fichier importé est cf.goups qui comprend la liste des classes de machines: Le premier fichier importé est cf.goups qui comprend la liste des classes de machines:
 +<code>
 [root@calaz /var/cfengine/masterinputs] [root@calaz /var/cfengine/masterinputs]
 $ cat cf.groups $ cat cf.groups
Line 622: Line 614:
 autoconfigMozilla = ( arvouin ) autoconfigMozilla = ( arvouin )
 logoint = ( arvouin ) logoint = ( arvouin )
 +</code>
  
- +====  Configuration générale ====
-8.3  Configuration générale+
 Le fichier cf.main contient les définitions et taches (strategies) générales valables pour toutes les machines présentes et futures du parc à gerer. Seules les actions à mener propres à cet exemple sont commentées dans le fichier, pour les directives et variables cfengine, voir la documentation de référence. Le fichier cf.main contient les définitions et taches (strategies) générales valables pour toutes les machines présentes et futures du parc à gerer. Seules les actions à mener propres à cet exemple sont commentées dans le fichier, pour les directives et variables cfengine, voir la documentation de référence.
  
 +<code>
 [root@calaz /var/cfengine/masterinputs] [root@calaz /var/cfengine/masterinputs]
 $ cat cf.main $ cat cf.main
Line 715: Line 708:
    /etc/shadow mode=600 owner=root action=fixall checksum=md5                                                               /etc/shadow mode=600 owner=root action=fixall checksum=md5                                                           
    /var/cfengine/checksum.db  mode=600 owner=root action=fixall    /var/cfengine/checksum.db  mode=600 owner=root action=fixall
 +</code>
  
- +====  Configuration propre aux machines linux ====
-8.4  Configuration propre aux machines linux+
 Exemple de fichier de configuration propre aux machines linux: Exemple de fichier de configuration propre aux machines linux:
  
Line 753: Line 746:
  
  
-8.5  Fichier sources du serveur+====  Fichier sources du serveur ====
 Les differents fichiers et dossiers évoqués dans les stratégies ci-dessus sont stockés sur le serveur cfengine /var/cfengine/data : Les differents fichiers et dossiers évoqués dans les stratégies ci-dessus sont stockés sur le serveur cfengine /var/cfengine/data :
  
 +<code>
 $ mkdir /var/cfengine/data $ mkdir /var/cfengine/data
 $ mkdir /var/cfengine/data/fedora-3/ $ mkdir /var/cfengine/data/fedora-3/
Line 768: Line 762:
 $ ls $ ls
 bashrc  fedora-3  mozilla.cfg bashrc  fedora-3  mozilla.cfg
 +</code>
  
 +====  Lancement du client ====
  
-8.6  Lancement du client +<code>
 [root@arvouin /var/cfengine/ppkeys] [root@arvouin /var/cfengine/ppkeys]
 $/var/cfengine/sbin/cfagent  -q -v $/var/cfengine/sbin/cfagent  -q -v
Line 873: Line 868:
 Existing restart sequence found (/sbin/chkconfig --level 345 nscd on ; /etc/init.d/nscd restart) Existing restart sequence found (/sbin/chkconfig --level 345 nscd on ; /etc/init.d/nscd restart)
 cfengine:arvouin: Matches found for nscd - no restart sequence cfengine:arvouin: Matches found for nscd - no restart sequence
 +</code>
  
 Toutes les opérations se sont réalisées comme prevu . Toutes les opérations se sont réalisées comme prevu .
  
-9  Package RPM maison de cfengine+===== Package RPM maison de cfengine =====
 Voici un exemple de fichier de spec de construction du package cfengine, à partir du tar.gz, il apporte en valeur ajoutée la clé du serveur, les scripts de demarrage (cfengine, cfinit, cron cfengine), la construction de l'aborescence (faite aussi par cfexec ..) l'update.conf initial, eventuellement des pluggins etc .... Cela permet d'industrialiser le deploiement cfengine sur les clients dès leur installation par kickstart. Voici un exemple de fichier de spec de construction du package cfengine, à partir du tar.gz, il apporte en valeur ajoutée la clé du serveur, les scripts de demarrage (cfengine, cfinit, cron cfengine), la construction de l'aborescence (faite aussi par cfexec ..) l'update.conf initial, eventuellement des pluggins etc .... Cela permet d'industrialiser le deploiement cfengine sur les clients dès leur installation par kickstart.
 Pour les details de contruction de packages RPM voir: Pour les details de contruction de packages RPM voir:
Line 883: Line 878:
 http://www.rpm.org/RPM-HOWTO/build.html http://www.rpm.org/RPM-HOWTO/build.html
  
 +<code>
 [root@calaz /usr/src/redhat/SPECS] [root@calaz /usr/src/redhat/SPECS]
 $ cat cfengine.spec $ cat cfengine.spec
Line 1002: Line 998:
 * Sat Jul 27 2000 Ian Macdonald <ian@caliban.org> * Sat Jul 27 2000 Ian Macdonald <ian@caliban.org>
 - 1.5.4 packaged as RPM - 1.5.4 packaged as RPM
 +</code>
  
- +===== Configurations évoluées =====
-10  Configurations évoluées+
 Exemple de configurations évoluée (en cours d'écriture ....) Exemple de configurations évoluée (en cours d'écriture ....)
  
-10.1  Gestion des packages+====  Gestion des packages ====
 Plutot que de faire une installation de logiciels à partir de shellcommands lançants rpm ou yum etc ... depuis la version 2.1 de cfengine il est possible d'utiliser la directive package: Plutot que de faire une installation de logiciels à partir de shellcommands lançants rpm ou yum etc ... depuis la version 2.1 de cfengine il est possible d'utiliser la directive package:
  
Line 1014: Line 1010:
 Exemple d'utilisation. Exemple d'utilisation.
  
 +<code>
 control: control:
  
Line 1028: Line 1025:
         RealPlayer pkgmgr=rpm action=install         RealPlayer pkgmgr=rpm action=install
         scilab pkgmgr=rpm action=install         scilab pkgmgr=rpm action=install
 +</code>
  
- +==== Pluggins maison ====
-10.2  Pluggins maison+
 ... à continuer ... ... à continuer ...
docpublic/systemes/linux/cfengine.1340612933.txt.gz · Last modified: 2012/06/25 08:28 by PROCACCIA
[unknown link type]Back to top
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0