PUPPET » Historique » Version 8
Mehdi Abaakouk, 04/01/2012 11:08
1 | 6 | Mehdi Abaakouk | h1. Master of Puppet |
---|---|---|---|
2 | 1 | Mehdi Abaakouk | |
3 | 6 | Mehdi Abaakouk | h2. Exemple duplication www avec puppet et les backups: |
4 | 1 | Mehdi Abaakouk | |
5 | 6 | Mehdi Abaakouk | Installation d'une vm (ici: puppet-tester) avec ganeti: |
6 | 6 | Mehdi Abaakouk | |
7 | 6 | Mehdi Abaakouk | sur h1: |
8 | 6 | Mehdi Abaakouk | <pre> |
9 | 6 | Mehdi Abaakouk | ./gnt-addvm puppet-tester |
10 | 6 | Mehdi Abaakouk | </pre> |
11 | 6 | Mehdi Abaakouk | |
12 | 7 | Mehdi Abaakouk | Sur puppet-tester, restauration du dernier backup de /var/www de www.tetaneutral.net qui se trouve sur h2 (Je passe l'installation de clé pgp): |
13 | 7 | Mehdi Abaakouk | |
14 | 7 | Mehdi Abaakouk | <pre> |
15 | 7 | Mehdi Abaakouk | cat www.tetaneutral.net-var-www.20120102.master.tar.gz | gpg -d | tar -xzf - -C / |
16 | 7 | Mehdi Abaakouk | cat www.tetaneutral.net-var-www.20120103.tar.gz | gpg -d | tar -xzf - -C / |
17 | 8 | Mehdi Abaakouk | cat www.tetaneutral.net-var-www.20120104.tar.gz | gpg -d | tar -xzf - -C / |
18 | 7 | Mehdi Abaakouk | </pre> |
19 | 6 | Mehdi Abaakouk | |
20 | 6 | Mehdi Abaakouk | Puis installation de puppet: |
21 | 6 | Mehdi Abaakouk | <pre> |
22 | 6 | Mehdi Abaakouk | $ apt-get install puppet |
23 | 6 | Mehdi Abaakouk | |
24 | 6 | Mehdi Abaakouk | $ cat /etc/puppet/puppet.conf ajouter: |
25 | 6 | Mehdi Abaakouk | [main] |
26 | 6 | Mehdi Abaakouk | logdir=/var/log/puppet |
27 | 6 | Mehdi Abaakouk | vardir=/var/lib/puppet |
28 | 6 | Mehdi Abaakouk | ssldir=/var/lib/puppet/ssl |
29 | 6 | Mehdi Abaakouk | rundir=/var/run/puppet |
30 | 6 | Mehdi Abaakouk | factpath=$vardir/lib/facter |
31 | 6 | Mehdi Abaakouk | templatedir=$confdir/templates |
32 | 6 | Mehdi Abaakouk | pluginsync = true |
33 | 6 | Mehdi Abaakouk | |
34 | 6 | Mehdi Abaakouk | [agent] |
35 | 6 | Mehdi Abaakouk | server=puppet.tetaneutral.net |
36 | 6 | Mehdi Abaakouk | |
37 | 6 | Mehdi Abaakouk | $ puppet agent --test |
38 | 6 | Mehdi Abaakouk | </pre> |
39 | 6 | Mehdi Abaakouk | |
40 | 6 | Mehdi Abaakouk | Sur puppet.teteneutral.net, dans le fichier nodes.pp copie du bloc de la machine www en puppet-tester |
41 | 6 | Mehdi Abaakouk | puis on sign la cle de puppet-tester |
42 | 6 | Mehdi Abaakouk | <pre> |
43 | 6 | Mehdi Abaakouk | puppetca --sign puppet-tester.tetaneutral.net |
44 | 6 | Mehdi Abaakouk | </pre> |
45 | 6 | Mehdi Abaakouk | |
46 | 6 | Mehdi Abaakouk | sur puppet-tester, on descend la configuration via puppet: |
47 | 6 | Mehdi Abaakouk | |
48 | 6 | Mehdi Abaakouk | <pre>puppet agent --test</pre> |
49 | 6 | Mehdi Abaakouk | |
50 | 6 | Mehdi Abaakouk | et pour finir on restaure le backup mysql: |
51 | 6 | Mehdi Abaakouk | |
52 | 6 | Mehdi Abaakouk | <pre> |
53 | 6 | Mehdi Abaakouk | mysql -u root < www.tetaneutral.net-all-mysql-databases.20120103.sql |
54 | 6 | Mehdi Abaakouk | </pre> |
55 | 6 | Mehdi Abaakouk | |
56 | 6 | Mehdi Abaakouk | |
57 | 1 | Mehdi Abaakouk | h2. Ajout d'une machine: |
58 | 1 | Mehdi Abaakouk | |
59 | 1 | Mehdi Abaakouk | Sur le client: |
60 | 1 | Mehdi Abaakouk | |
61 | 1 | Mehdi Abaakouk | <pre> |
62 | 1 | Mehdi Abaakouk | $ apt-get install puppet |
63 | 1 | Mehdi Abaakouk | </pre> |
64 | 1 | Mehdi Abaakouk | |
65 | 1 | Mehdi Abaakouk | dans /etc/default/puppet mettre: |
66 | 1 | Mehdi Abaakouk | <pre> |
67 | 1 | Mehdi Abaakouk | START=yes |
68 | 1 | Mehdi Abaakouk | </pre> |
69 | 1 | Mehdi Abaakouk | |
70 | 1 | Mehdi Abaakouk | et dans /etc/puppet/puppet.conf ajouter: |
71 | 1 | Mehdi Abaakouk | <pre> |
72 | 6 | Mehdi Abaakouk | pluginsync=true |
73 | 6 | Mehdi Abaakouk | |
74 | 1 | Mehdi Abaakouk | [agent] |
75 | 1 | Mehdi Abaakouk | server=puppet.tetaneutral.net |
76 | 1 | Mehdi Abaakouk | </pre> |
77 | 1 | Mehdi Abaakouk | |
78 | 1 | Mehdi Abaakouk | Ensuite ajouter la machine dans le puppet master, MOUAHAHA: |
79 | 1 | Mehdi Abaakouk | Sur le client: |
80 | 1 | Mehdi Abaakouk | <pre> |
81 | 1 | Mehdi Abaakouk | $ puppet agent --test |
82 | 1 | Mehdi Abaakouk | warning: peer certificate won't be verified in this SSL session |
83 | 1 | Mehdi Abaakouk | warning: peer certificate won't be verified in this SSL session |
84 | 1 | Mehdi Abaakouk | warning: peer certificate won't be verified in this SSL session |
85 | 1 | Mehdi Abaakouk | Exiting; no certificate found and waitforcert is disabled |
86 | 1 | Mehdi Abaakouk | </pre> |
87 | 1 | Mehdi Abaakouk | |
88 | 1 | Mehdi Abaakouk | Sur le serveur: |
89 | 1 | Mehdi Abaakouk | <pre> |
90 | 1 | Mehdi Abaakouk | $ puppetca --list |
91 | 1 | Mehdi Abaakouk | www.tetaneutral.net |
92 | 1 | Mehdi Abaakouk | |
93 | 1 | Mehdi Abaakouk | $ puppetca --sign --all |
94 | 1 | Mehdi Abaakouk | notice: Signed certificate request for www.tetaneutral.net |
95 | 1 | Mehdi Abaakouk | notice: Removing file Puppet::SSL::CertificateRequest www.tetaneutral.net at '/var/lib/puppet/ssl/ca/requests/www.tetaneutral.net.pem' |
96 | 1 | Mehdi Abaakouk | </pre> |
97 | 1 | Mehdi Abaakouk | |
98 | 1 | Mehdi Abaakouk | Sur le client: |
99 | 1 | Mehdi Abaakouk | <pre> |
100 | 1 | Mehdi Abaakouk | $ puppet agent --test |
101 | 1 | Mehdi Abaakouk | warning: peer certificate won't be verified in this SSL session |
102 | 1 | Mehdi Abaakouk | info: Caching certificate for www.tetaneutral.net |
103 | 1 | Mehdi Abaakouk | info: Caching certificate_revocation_list for ca |
104 | 1 | Mehdi Abaakouk | info: Caching catalog for www.tetaneutral.net |
105 | 1 | Mehdi Abaakouk | info: Applying configuration version '1325516709' |
106 | 4 | Mehdi Abaakouk | info: Creating state file /var/lib/puppet/state/state.yaml |
107 | 4 | Mehdi Abaakouk | notice: Finished catalog run in 0.01 seconds |
108 | 4 | Mehdi Abaakouk | </pre> |
109 | 4 | Mehdi Abaakouk | |
110 | 4 | Mehdi Abaakouk | Sur le serveur, on associe les modules au client: |
111 | 4 | Mehdi Abaakouk | |
112 | 4 | Mehdi Abaakouk | <pre> |
113 | 4 | Mehdi Abaakouk | $ cat manifests/nodes.pp |
114 | 4 | Mehdi Abaakouk | |
115 | 4 | Mehdi Abaakouk | node basenode { |
116 | 2 | Mehdi Abaakouk | include backup |
117 | 2 | Mehdi Abaakouk | include motd |
118 | 5 | Mehdi Abaakouk | } |
119 | 5 | Mehdi Abaakouk | |
120 | 5 | Mehdi Abaakouk | node 'www.tetaneutral.net' inherits basenode { |
121 | 5 | Mehdi Abaakouk | } |
122 | 5 | Mehdi Abaakouk | </pre> |
123 | 5 | Mehdi Abaakouk | |
124 | 5 | Mehdi Abaakouk | |
125 | 5 | Mehdi Abaakouk | |
126 | 5 | Mehdi Abaakouk | h2. Récupération de fichier écrasé par puppet: |
127 | 5 | Mehdi Abaakouk | |
128 | 1 | Mehdi Abaakouk | Voir la liste des fichiers backupés: |
129 | 2 | Mehdi Abaakouk | <pre> |
130 | 2 | Mehdi Abaakouk | find /var/*/puppet/clientbucket -name paths | while read path ; do echo $(cat $path): $(basename $(dirname $path)) $(stat -c %y $path) ; done |
131 | 2 | Mehdi Abaakouk | </pre> |
132 | 2 | Mehdi Abaakouk | Ensuite pour voir le fichier: |
133 | 2 | Mehdi Abaakouk | <pre> |
134 | 6 | Mehdi Abaakouk | A venir ... (un truc avec puppet filebucket ...) |
135 | 2 | Mehdi Abaakouk | </pre> |
136 | 2 | Mehdi Abaakouk | |
137 | 2 | Mehdi Abaakouk | h2. Ajout d'un module (ie: un truc/service/user a configurer), ici module motdpour l'exemple : |
138 | 2 | Mehdi Abaakouk | |
139 | 2 | Mehdi Abaakouk | h3. Création du module |
140 | 2 | Mehdi Abaakouk | |
141 | 2 | Mehdi Abaakouk | <pre> |
142 | 2 | Mehdi Abaakouk | cd /etc/puppet/modules |
143 | 2 | Mehdi Abaakouk | mkdir -p motd/{files,lib,manifests,templates,tests} |
144 | 2 | Mehdi Abaakouk | $ cat motd/manifests/init.pp |
145 | 2 | Mehdi Abaakouk | class motd { |
146 | 2 | Mehdi Abaakouk | file {'motd': |
147 | 2 | Mehdi Abaakouk | ensure => file, |
148 | 2 | Mehdi Abaakouk | path => '/etc/motd.tail', |
149 | 2 | Mehdi Abaakouk | mode => 0644, |
150 | 2 | Mehdi Abaakouk | content => "Bienvenue sur ${::hostname}, machine de l'infrastructure ${::domain}\n\nCette machine est geree par puppet toutes modifications effectuee est suceptible d'etre perdu." |
151 | 2 | Mehdi Abaakouk | } |
152 | 2 | Mehdi Abaakouk | } |
153 | 2 | Mehdi Abaakouk | </pre> |
154 | 2 | Mehdi Abaakouk | |
155 | 2 | Mehdi Abaakouk | |
156 | 2 | Mehdi Abaakouk | h3. Ajout du module à la liste des modules disponibles |
157 | 1 | Mehdi Abaakouk | |
158 | 2 | Mehdi Abaakouk | <pre> |
159 | 2 | Mehdi Abaakouk | $ cat manifests/modules.pp |
160 | 2 | Mehdi Abaakouk | import "motd" |
161 | 2 | Mehdi Abaakouk | </pre> |
162 | 2 | Mehdi Abaakouk | |
163 | 2 | Mehdi Abaakouk | h3. Utilisation du module pour une node |
164 | 2 | Mehdi Abaakouk | |
165 | 2 | Mehdi Abaakouk | <pre> |
166 | 2 | Mehdi Abaakouk | $ cat manifests/nodes.pp |
167 | 6 | Mehdi Abaakouk | node 'www.tetaneutral.net' { |
168 | 2 | Mehdi Abaakouk | include motd |
169 | 2 | Mehdi Abaakouk | } |
170 | 2 | Mehdi Abaakouk | </pre> |
171 | 1 | Mehdi Abaakouk | |
172 | 1 | Mehdi Abaakouk | |
173 | 1 | Mehdi Abaakouk | h2. Installation |
174 | 1 | Mehdi Abaakouk | |
175 | 1 | Mehdi Abaakouk | Installation du paquet: |
176 | 1 | Mehdi Abaakouk | <pre> |
177 | 1 | Mehdi Abaakouk | $ apt-get install puppetmaster |
178 | 1 | Mehdi Abaakouk | </pre> |
179 | 1 | Mehdi Abaakouk | |
180 | 1 | Mehdi Abaakouk | |
181 | 1 | Mehdi Abaakouk | Dans /etc/puppet/puppet.conf mettre le nom du serveur puppetmaster: |
182 | 1 | Mehdi Abaakouk | <pre> |
183 | 1 | Mehdi Abaakouk | [master] |
184 | 1 | Mehdi Abaakouk | certname=puppet.tetaneutral.net |
185 | 1 | Mehdi Abaakouk | </pre> |
186 | 1 | Mehdi Abaakouk | |
187 | 1 | Mehdi Abaakouk | Dans /etc/puppet/fileserver.conf configurer les autorisations: |
188 | 1 | Mehdi Abaakouk | <pre> |
189 | 1 | Mehdi Abaakouk | [files] |
190 | 1 | Mehdi Abaakouk | path /etc/puppet/files |
191 | 1 | Mehdi Abaakouk | allow 91.224.149.0/24 |
192 | 1 | Mehdi Abaakouk | allow 91.224.148.0/24 |
193 | 1 | Mehdi Abaakouk | </pre> |
194 | 6 | Mehdi Abaakouk | |
195 | 6 | Mehdi Abaakouk | |
196 | 6 | Mehdi Abaakouk | h2. Liens: |
197 | 6 | Mehdi Abaakouk | |
198 | 6 | Mehdi Abaakouk | * http://docs.puppetlabs.com/references/stable/ |
199 | 6 | Mehdi Abaakouk | * http://madeinsyria.fr/2011/06/howto-puppet-administration-et-industrialisation-de-masse/ |