This is an old revision of the document!


02. Manifeste Puppet

Cu toate ca putem crea, modifica sau sterge resurse folosind comenzi de tip puppet resource, aceasta nu este o solutie potrivita pentru situatii complexe.

O solutie mai buna consta in:

  • declararea resurselor in fisiere (text);
  • efectuarea modificarilor descrise in fisiere folosind Puppet.

Fisierele ce contin declarari de resurse Puppet se numesc manifeste si au, de obicei, extensia .pp.

Crearea unui manifest

Vom scrie un manifest care sa descrie o resursa de tip fisier. Fisierul va avea urmatoarele proprietati:

  • nume si cale: /tmp/my_file;
  • drepturi de acces: 0640;
  • continut: “File created using Puppet”;

Declararea resursei va arata astfel:

file {'my_file':
  path    => '/tmp/my_file',
  ensure  => present,
  mode    => 0640,
  content => "File created using Puppet.",
}

Salvati codul de mai sus intr-un fisier manifest numit my_file_manif.pp.

Aplicarea unui manifest

Aplicarea unui manifest se executa folosind comanda puppet apply:

[root@learn ~]# puppet apply my_file_manif.pp
Notice: Compiled catalog for learn.localdomain in environment production in 0.18 seconds                             
Notice: /Stage[main]//File[my_file]/ensure: created                                                                  
Notice: Finished catalog run in 0.38 seconds                                                                         

Verificati ca fisierul a fost creat, iar continutul si drepturile de acces sunt corecte.

Incercati sa aplicati din nou manifestul:

[root@learn ~]# puppet apply my_file_manif.pp
Notice: Compiled catalog for learn.localdomain in environment production in 0.16 seconds
Notice: Finished catalog run in 0.38 seconds

Observati ca daca resursa este deja in starea descrisa de manifest, Puppet nu mai executa nici o actiune.

Modificati drepturile de acces ale fisierului la 755, apoi aplicati din nou manifestul:

[root@learn ~]# chmod 755 /tmp/my_file 
[root@learn ~]# puppet apply my_file_manif.pp
Notice: Compiled catalog for learn.localdomain in environment production in 0.18 seconds
Notice: /Stage[main]//File[my_file]/mode: mode changed '0755' to '0640'
Notice: Finished catalog run in 0.38 seconds

Modificati continutul fisierului, apoi aplicati din nou manifestul:

[root@learn ~]# echo "This is not my file" > /tmp/my_file 
[root@learn ~]# puppet apply my_file_manif.pp
Notice: Compiled catalog for learn.localdomain in environment production in 0.18 seconds
Notice: /Stage[main]//File[my_file]/content: content changed '{md5}7225302b0d15d4a2562c2ab55e45d4cc' to '{md5}b4fdf30d694de5a5d7fe7a50cda27851'
Notice: Finished catalog run in 0.41 seconds

Observati ca daca atributele resursei difera de cele descrise in manifest, aplicarea manifestului readuce resursa in starea dorita.

(Exercitiu) Stari (ensure)

Atributul ensure specifica de cele mai multe ori daca resursa:

  • trebuie sa existe (ensure ⇒ present);
  • trebuie sa NU existe (ensure ⇒ absent).

Unele tipuri de resurse definesc stari aditionale pentru acest atribut. Resursele de tip file pot avea, in plus, urmatoarele valori:

  • directory
  • link
  • file

Definiti un manifest care sa creeze un link simbolic la fisierul /tmp/my_file.

Hint: Resursa trebuie sa aiba si atributul target.

(Exercitiu) Cheie autorizata SSH

Intr-un manifest, definiti o resursa de tip “cheie autorizata SSH”.

Resursa trebuie sa permita autentificarea utilizatorului student de pe masina fizica, in contul utilizatorului root de pe masina virtuala, fara parola.

Perechea de chei pentru utilizatorul student trebuie generata in prealabil.

Folositi documentatia Puppet pentru tipurile de resurse: http://docs.puppetlabs.com/references/stable/type.html#sshauthorizedkey

saisp/labs/10/contents/02.1391175825.txt.gz · Last modified: 2014/01/31 15:43 by alexandru.carp
CC Attribution-Share Alike 3.0 Unported
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