This shows you the differences between two versions of the page.
|
saisp:labs:10:contents:03 [2014/01/24 16:17] alexandru.carp |
saisp:labs:10:contents:03 [2014/05/11 14:10] (current) alexandru.carp |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ==== 03. Dependente intre resurse ==== | + | ==== 03. [20p] Dependente intre resurse ==== |
| - | Un manifest Puppet poate contine declarari pentru mai mule resurse, insa ordinea in care sunt aplicate nu este bine definita. | + | Un manifest Puppet poate contine declarari pentru mai multe resurse, insa ordinea in care sunt aplicate nu este bine definita. |
| Sunt cazuri in care trebuie sa ne asiguram ca o resursa este aplicata inaintea alteia (de exemplu, un pachet este instalat inaintea pornirii serviciului). | Sunt cazuri in care trebuie sa ne asiguram ca o resursa este aplicata inaintea alteia (de exemplu, un pachet este instalat inaintea pornirii serviciului). | ||
| Line 7: | Line 7: | ||
| In aceste situatii, trebuie sa definim dependente intre resurse. | In aceste situatii, trebuie sa definim dependente intre resurse. | ||
| - | === (Tutorial) Before / Require === | + | === Before / Require === |
| Modificam manifestul creat anterior astfel: | Modificam manifestul creat anterior astfel: | ||
| Line 28: | Line 28: | ||
| * Dependenta intre resurse este definita prin atributul ''require''. In cazul de fata, resursa **my_file** este evaluata inaintea resursei **my_notify**. | * Dependenta intre resurse este definita prin atributul ''require''. In cazul de fata, resursa **my_file** este evaluata inaintea resursei **my_notify**. | ||
| - | Modificati fisierul **/tmp/my_file**, apoi aplicati manifestul. Observati ordinea in care resursele sunt evaluate. | + | Modificati fisierul **/tmp/my_file**, apoi aplicati manifestul de mai sus. Observati ordinea in care resursele sunt evaluate. |
| O sintaxa echivalenta ar fi folosirea parametrului ''before'' in resursa **my_file**: | O sintaxa echivalenta ar fi folosirea parametrului ''before'' in resursa **my_file**: | ||
| Line 46: | Line 46: | ||
| </code> | </code> | ||
| - | === (Tutorial) Notify / Subscribe === | + | === Notify / Subscribe === |
| Pentru unele resurse are sens actiunea de "refresh" (de exemplu, un serviciu care trebuie repornit). | Pentru unele resurse are sens actiunea de "refresh" (de exemplu, un serviciu care trebuie repornit). | ||
| - | Daca dorim ca in plus fata de dependenta intre resurse sa facem "refresh" pentru a doua resursa cand prima resursa este modificata trebuie ca: | + | Daca dorim ca, in plus fata de dependenta intre resurse, sa facem "refresh" pentru a doua resursa, cand prima resursa este modificata, trebuie: |
| * sa folosim **notify** in loc de **before**, sau | * sa folosim **notify** in loc de **before**, sau | ||
| * sa folosim **subscribe** in loc de **require**. | * sa folosim **subscribe** in loc de **require**. | ||
| Line 60: | Line 60: | ||
| ensure => file, | ensure => file, | ||
| mode => 600, | mode => 600, | ||
| - | source => 'puppet:///modules/ssh/sshd_config', | + | source => '/root/examples/sshd_config', |
| } | } | ||
| service { 'sshd': | service { 'sshd': | ||
| Line 69: | Line 69: | ||
| </code> | </code> | ||
| + | Creati un manifest cu codul de mai sus, apoi modificati fisierul **/etc/ssh/sshd_config** si aplicati manifestul. | ||
| + | === Sintaxa echivalenta === | ||
| + | |||
| + | In locul atributelor **before / require** sau **notify / subscribe** putem folosi operatorul ''->'', respectiv ''~>''. | ||
| + | |||
| + | Exemplu: | ||
| + | <code> | ||
| + | file {'my_file': | ||
| + | path => '/tmp/my_file', | ||
| + | ensure => present, | ||
| + | mode => 0640, | ||
| + | content => "File created using Puppet.", | ||
| + | } | ||
| + | -> | ||
| + | notify {'my_notify': | ||
| + | message => "File /tmp/my_file has been synced", | ||
| + | } | ||
| + | </code> | ||