This is an old revision of the document!
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:
Fisierele ce contin declarari de resurse Puppet se numesc manifeste si au, de obicei, extensia .pp.
Vom scrie un manifest care sa descrie o resursa de tip fisier. Fisierul va avea urmatoarele proprietati:
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 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.
Atributul ensure specifica de cele mai multe ori daca resursa:
Unele tipuri de resurse definesc stari aditionale pentru acest atribut. Resursele de tip file pot avea, in plus, urmatoarele valori:
Definiti un manifest care sa creeze un link simbolic la fisierul /tmp/my_file. HINT: Resursa trebuie sa aiba si atributul target.