Differences

This shows you the differences between two versions of the page.

Link to this comparison view

saisp:labs:10:contents:03 [2014/01/24 15:09]
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 resursa ​+Daca dorim cain plus fata de dependenta intre resursesa facem "​refresh"​ pentru ​a doua resursa, cand prima resursa este modificata, trebuie: 
 +  * sa folosim **notify** in loc de **before**, sau 
 +  * sa folosim **subscribe** in loc de **require**.
  
 +Un exemplu ar fi repornirea serviciului SSH atunci cand fisierul sau de configurare este modificat:
  
 +<​code>​
 +file { '/​etc/​ssh/​sshd_config':​
 +  ensure => file,
 +  mode   => 600,
 +  source => '/​root/​examples/​sshd_config',​
 +}
 +service { '​sshd':​
 +  ensure ​   => running,
 +  enable ​   => true,
 +  subscribe => File['/​etc/​ssh/​sshd_config'​],​
 +}
 +</​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>​
saisp/labs/10/contents/03.1390568948.txt.gz · Last modified: 2014/01/24 15:09 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