This is an old revision of the document!


03. Dependente intre resurse

Un manifest Puppet poate contine declarari pentru mai mule 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).

In aceste situatii, trebuie sa definim dependente intre resurse.

(Tutorial) Before / Require

Modificam manifestul creat anterior astfel:

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",
  require => File['my_file'],
}
  • Resursa de tip notify defineste un mesaj ce va fi afisat in momentul cand declaratia sa este evaluata;
  • 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.

O sintaxa echivalenta ar fi folosirea parametrului before in resursa my_file:

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

notify {'my_notify':
  message => "File /tmp/my_file has been synced",
}

(Tutorial) Notify / Subscribe

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:

  • 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:

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'],
}

Creati un manifest cu codul de mai sus, apoi modificati fisierul /etc/ssh/sshd_config si aplicati manifestul.

(Tutorial) Sintaxa echivalenta

In locul atributelor before / require sau notify / subscribe putem folosi operatorul , respectiv ~>.

saisp/labs/10/contents/03.1390573292.txt.gz · Last modified: 2014/01/24 16:21 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