Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1207 connectés 

  FORUM HardWare.fr
  Réseaux grand public / SoHo
  Réseaux

  [TUTO] Installer PuppetMaster OpenSource (en cours)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[TUTO] Installer PuppetMaster OpenSource (en cours)

n°737499
nomiss
La rootine
Posté le 21-01-2014 à 16:42:46  profilanswer
 

SALUT,  :hello:  
 
étant donné que j'ai galéré pour mettre mon master en place, je vous propose ma version. En esperant aider certain :)
 
Voici un tuto donc, en complément de la doc officielle : http://docs.puppetlabs.com/guides/installation.html
 
+--------------------------------------------------------+
|Red Hat Enterprise Linux Server release 6.5 (Santiago) |
+--------------------------------------------------------+
 

  • puppet version : 3.4.2


  • IpTables stoppé


_________________________________________________________________________________________________________
 
 
POST INSTALLATION
 

Code :
  1. yum update


 
installation de ruby :
 
1- Modifier les Repo si besoin
 

Code :
  1. [root@rennspocpuppet]# yum install ruby-rdoc
  2. Dependencies Resolved
  3. ================================================================================
  4. Package               Arch        Version                    Repository   Size
  5. ================================================================================
  6. Installing:
  7. ruby-rdoc             x86_64      1.8.7.352-12.el6_4         Server      376 k
  8. Installing for dependencies:
  9. compat-readline5      x86_64      5.2-17.1.el6               Server      129 k
  10. ruby                  x86_64      1.8.7.352-12.el6_4         Server      534 k
  11. ruby-irb              x86_64      1.8.7.352-12.el6_4         Server      313 k
  12. ruby-libs             x86_64      1.8.7.352-12.el6_4         Server      1.6 M
  13. simontuto
  14. Transaction Summary
  15. ================================================================================
  16. Install       5 Package(s)
  17. Total download size: 3.0 M
  18. Installed size: 10 M


 
 
 
2- Install du rpm

Code :
  1. [root@rennspocpuppet tmp]# rpm -ivh rubygems-1.3.7-5.el6.noarch.rpm
  2. Preparing...                ########################################### [100%]
  3. 1:rubygems               ########################################### [100%]


 
Le rpm est difficilement trouvable sur la toile, je l'ai up : http://r07tbo.1fichier.com/
 
ou
 
http://uploadhero.co/dl/33fb78a4
 
 
 
INSTALLATION
 
Création de l’utilisateur PUPPET avant l’installation :
 

Code :
  1. [root@rennspocpupmaster ~]# mkdir /usr/local/home
  2. [root@rennspocpupmaster ~]# adduser -c "Puppet user" -d /usr/local/home/puppet -m -U -s
  3. /bin/bash puppet


 
Installation du serveur PuppetMaster
 
Ajout dans un premier temps le repository :
 

Code :
  1. [root@rennspocpuppet ~]# rpm -ivh https://yum.puppetlabs.com/el/6/pro [...] noarch.rpm
  2. Retrieving https://yum.puppetlabs.com/el/6/pro [...] noarch.rpm
  3. warning: /var/tmp/rpm-tmp.1NtQxQ: Header V4 RSA/SHA1 Signature, key ID 4xd6ec30: NOKEY
  4. Preparing...                ########################################### [100%]
  5.    1:puppetlabs-release     ########################################### [100%]


 
Puis  

Code :
  1. [root@rennspocpuppet ~]# yum install puppet-server
  2. Installed:
  3.   puppet-server.noarch 0:3.4.2-1.el6
  4. Dependency Installed:
  5.   augeas-libs.x86_64 0:1.0.0-5.el6  facter.x86_64 1:1.7.4-1.el6
  6.   hiera.noarch 0:1.3.0-1.el6        libselinux-ruby.x86_64 0:2.0.94-5.3.el6_4.1
  7.   puppet.noarch 0:3.4.2-1.el6       ruby-augeas.x86_64 0:0.4.1-1.el6
  8.   ruby-rgen.noarch 0:0.6.5-1.el6    ruby-shadow.x86_64 0:1.4.1-13.el6
  9.   rubygem-json.x86_64 0:1.5.5-1.el6
  10. Complete!


 
Vérification :
 

Code :
  1. [root@rennspocpuppet ~]# rpm -qa | grep puppet
  2. puppet-3.4.2-1.el6.noarch
  3. puppet-server-3.4.2-1.el6.noarch
  4. puppetlabs-release-6-7.noarch


 
 
Configuration de puppet.conf
 
faire un back up :  
 

Code :
  1. cp puppet.conf puppet.conf.old


 
puis éditez la conf dans /etc/puppet/:
 
 
vi puppet.conf
 
 

Code :
  1. [main]
  2.         logdir=/var/log/puppet
  3.         vardir=/var/lib/puppet
  4.         ssldir=/var/lib/puppet/ssl
  5.         rundir=/var/run/puppet
  6.         factpath=$vardir/lib/facter
  7.         templatedir=$confdir/templates
  8. [master]
  9.         report=true
  10.         reports=log,store
  11.         modulepath=/etc/puppet/modules
  12. [agent]
  13.         server=rennspocpuppet.domain


 
Ps: Le master est son propre Agent
 
 

  • Démarrage des Services


 

Code :
  1. [root@rennspocpuppet puppet]# /etc/init.d/puppetmaster start
  2. Starting puppetmaster:                             [ OK  ]
  3. [root@rennspocpuppet puppet]# /etc/init.d/puppet start
  4. Starting puppet agent:                                     [  OK  ]


 
 
Certificat
 
Sur le client faire une demande de certificat :
 

Code :
  1. [root@rennspocpupsrv01 ~]# puppet agent --server rennspocpuppet.domain --waitforcert 60 --test
  2. Info: Retrieving plugin
  3. Info: Caching catalog for rennspocpupsrv01.domain


 
Vérifier que de base le répertoire des requests est vide sinon celà peut causer des erreurs ( /etc/puppet/ssl/certificate_requests)
 
Sur le master, il faut signer ce certificat :
 
Vérif de la présence du nouveau certif :

Code :
  1. [root@rennspocpuppet puppet]# puppet cert list --all
  2.   "rennspocpupsrv01.domain" (SHA256) 53:C0:D4:26:51:39:24:B8:C6:BC:05:E2:99:23:2F:A9:E7:C7:CE:A5:25:E6:D4:13:90:5D:BD:48:D6:3A:F3:E7*
  3. + "rennspocpuppet.domain"   (SHA256) A7:AD:86:69:B2:4B:C2:XT:2A:85:5D:77:52:A4:00:74:EC:70:7C:B4:19:EF:C9:86:10:02:DE:B7:C7:EA:E4:DE (alt names: "DNS:puppet", "DNS:puppet.domain", "DNS:rennspocpuppet.domain" )**
  4. *en gras : le nouveau certificat en attente d’être signé
  5. **le certificat local du master


 
Signons-le via :
 

Code :
  1. [root@rennspocpuppet puppet]# puppet cert --sign rennspocpupsrv01.domain
  2. Notice: Signed certificate request for rennspocpupsrv01.domain
  3. Notice: Removing file Puppet::SSL::CertificateRequest rennspocpupsrv01.domain at '/var/lib/puppet/ssl/ca/requests/rennspocpupsrv01.domain.pem'


 
 
Sur le client :
 
le client retourne :  
 

Code :
  1. Info: Applying configuration version '1390312822'
  2. Notice: Finished catalog run in 0.02 seconds


 
Vérifier que le certif est bien enregistré :
 
 

Code :
  1. [root@rennspocpuppet puppet]# puppet cert list --all
  2. + "rennspocpuppet.domain"   (SHA256) A7:AD:86:69:B2:4B:C2:EF:2A:85:5D:77:52:A4:00:74:EC:70:7C:B4:19:EF:C9:86:10:02:DE:B7:C7:EA:E4:DE (alt names: "DNS:puppet", "DNS:puppet.domain", "DNS:rennspocpuppet.domain" )
  3. + "rennspocpupsrv01.domain" (SHA256) 7A:01:AF:4A:A9:1B:69:16:94:69:29:2E:15:FF:64:CF:93:A9:0C:74:B7:2D:D8:F4:1B:EC:AE:DF:58:DA:E3:F7


 
 
À présent le client communique avec le Puppet Master, voyons à présent l’application de “manifests”
 
 

Code :
  1. ERREURS RENCONTREES : (tail -f /var/log/puppet/masterhttp.log)
  2. ERROR OpenSSL::SSL::SSLError: SSL_accept returned=1 errno=0 state=SSLv3 read client certificate A: tlsv1 alert unknown ca
  3. Probleme dû au fichier de conf et le mauvais repertoire SSL référencé


 
 

  • Et le client ???


L'installation est à peu prEs pareil. Sauf qu'il ne faut pas installer puppet master. Il faut cependant ajouter le user (voir ci-dessus), ruby etc..
 
La conf de mon client : puppet.conf
 

Code :
  1. [main]
  2.     # The Puppet log directory.
  3.     # The default value is '$vardir/log'.
  4.     logdir = /var/log/puppet
  5.     # Where Puppet PID files are kept.
  6.     # The default value is '$vardir/run'.
  7.     rundir = /var/run/puppet
  8.     # Where SSL certificates are kept.
  9.     # The default value is '$confdir/ssl'.
  10.     #Serveur maitre
  11.     server=rennspocpuppet.domain
  12. [agent]
  13.     # The file in which puppetd stores a list of the classes
  14.     # associated with the retrieved configuratiion.  Can be loaded in
  15.     # the separate ``puppet`` executable using the ``--loadclasses``
  16.     # option.
  17.     # The default value is '$confdir/classes.txt'.
  18.     classfile = $vardir/classes.txt
  19.     # Where puppetd caches the local configuration.  An
  20.     # extension indicating the cache format is added automatically.
  21.     # The default value is '$confdir/localconfig'.
  22.     localconfig = $vardir/localconfig


 
 
Puis démarrer le puppet agent ⇒       /etc/init.d/puppet start
 
 
Les Manifestes
 
Pour se familiariser avec les commandes, j’ai bêtement suivi les premieres instructions de la docs officielle :

Code :
  1. http://docs.puppetlabs.com/learning/manifests.html


 
Créer les fichiers dans /root/examples/ , puis appliquer les manifests via puppet apply *.pp . La première partie se fait en local.

Code :
  1. [root@rennspocpuppet manifests]# cat /etc/puppet/manifests/site.pp
  2. file {'/tmp/test1':
  3.       ensure  => file,
  4.       content => "Hi.\n",
  5.     }
  6.     file {'/tmp/test2':
  7.       ensure => directory,
  8.       mode   => 0644,
  9.     }
  10.     file {'/tmp/test3':
  11.       ensure => link,
  12.       target => '/tmp/test1',
  13.     }
  14.     notify {"DONE":}
  15.     notify {"Ca ! c'est fait !":}


Code :
  1. [root@rennspocpuppet manifests]# puppet apply site.pp
  2. Notice: Compiled catalog for rennspocpuppet.rennes.eu.thmulti.com in environment production in 0.09 seconds
  3. Notice: DONE
  4. Notice: /Stage[main]/Main/Notify[DONE]/message: defined 'message' as 'DONE'
  5. Notice: tout est fait
  6. Notice: /Stage[main]/Main/Notify[tout est fait]/message: defined 'message' as 'tout est fait'
  7. Notice: Finished catalog run in 0.04 seconds
  8. [root@rennspocpuppet manifests]# ls -la /tmp/
  9. -rw-r--r--   1 root root    4 Jan 22 11:30 test1
  10. drwxr-xr-x   2 root root 4096 Jan 22 11:30 test2
  11. lrwxrwxrwx   1 root root   10 Jan 22 11:30 test3 -> /tmp/test1


 
Et concernant le client ?
 
En tapant la commande ci-dessous, l’agent va alors appliquer les manifests présent dans le repertoire /etc/puppet/manifest du MASTER:
 

Code :
  1. [root@rennspocpupsrv01 ~]# puppet agent --test
  2. Info: Retrieving plugin
  3. Info: Caching catalog for rennspocpupsrv01.rennes.eu.thmulti.com
  4. Info: Applying configuration version '1390387005'
  5. Notice: /Stage[main]/Main/File[/tmp/test1]/ensure: defined content as '{md5}efd42eb5f26bbbc72e5446a3d0febb0f'
  6. Notice: /Stage[main]/Main/File[/tmp/test3]/ensure: created
  7. Notice: DONE
  8. Notice: /Stage[main]/Main/Notify[DONE]/message: defined 'message' as 'DONE'
  9. Notice: /Stage[main]/Main/File[/tmp/test2]/ensure: created
  10. Notice: tout est fait
  11. Notice: /Stage[main]/Main/Notify[tout est fait]/message: defined 'message' as 'tout est fait'
  12. Notice: Finished catalog run in 0.03 seconds
  13. [root@rennspocpupsrv01 ~]# ls -la /tmp/
  14. total 5116
  15. drwxrwxrwt.  4 root   root        4096 Jan 22 11:36 .
  16. dr-xr-xr-x. 25 root   root        4096 Dec 11 12:10 ..
  17. -rw-r--r--   1 root   root           4 Jan 22 11:36 test1
  18. drwxr-xr-x   2 root   root        4096 Jan 22 11:36 test2
  19. lrwxrwxrwx   1 root   root          10 Jan 22 11:36 test3 -> /tmp/test1


 
 
Analyse de la requête (début) :
 
 

Code :
  1. [root@rennspocpuppet manifests]# tcpdump -i eth0 host rennspocpupsrv01
  2. tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
  3. listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
  4. 11:41:39.801454 IP rennspocpupsrv01.domain.45470 > rennspocpuppet.domain.8140: Flags [S], seq 1144053067, win 14600, options [mss1460,sackOK,TS val 3634344643 ecr 0,nop,wscale 7], length 0
  5. 11:41:39.801496 IP rennspocpuppet.domain.8140 > rennspocpupsrv01.domain.45470: Flags [S.], seq 2178572627, ack 1144053068, win 14480, options [mss 1460,sackOK,TS val 159575657 ecr 3634344643,nop,wscale 7], length 0


 
 
Problème de droit rencontré quand je veux qu'un fichier soit créé dans /etc de mon client suite à l'application d'un manifest. Dans le repertoire /tmp il n'y a pas de soucis.
 
Arrêt de PUPPET OPEN SOURCE et passage à FABRIC, également OPENSOURCE mais cette fois-ci exploitant le python beaucoup plus democratisé que le ruby.
 
je combine Fabric avec "Cuisine"
 
FABRIC
http://docs.fabfile.org/en/1.8/index.html
 
CUISINE
https://github.com/sebastien/cuisine


Message édité par nomiss le 20-02-2014 à 14:54:23
mood
Publicité
Posté le 21-01-2014 à 16:42:46  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Réseaux grand public / SoHo
  Réseaux

  [TUTO] Installer PuppetMaster OpenSource (en cours)

 

Sujets relatifs
Installer soi-même la fibre dans un immeubleVieille TV à installer (pb avec hd)
[Tuto] Freebox v5 en bridge, Freebox HD, routeur dd-wrt et UPnP DLNAInstaller xpenology sur HP proliant N40L. (DSM 4.3 update3)
Installer plusieurs copieurs d'un seul coupCréer et installer ses cables ethernet et prises RJ45
comment installer phpmyadmin sur un dlink 320installer une carte reseaus wifi Broadcom BCM4318 sous Mandriva 2010.0
Installer Joomla avec sql et php sur homepage? 
Plus de sujets relatifs à : [TUTO] Installer PuppetMaster OpenSource (en cours)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR