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.