This shows you the differences between two versions of the page.
saisp:labs:10:contents:04 [2014/01/24 16:41] alexandru.carp |
saisp:labs:10:contents:04 [2014/05/11 14:10] (current) alexandru.carp |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 04. Design patterns ==== | + | ==== 04. [20p] Design patterns ==== |
- | === (Tutorial) Package / File / Service === | + | === Package / File / Service === |
In multe situatii, Puppet este folosit pentru a ne asigura ca un anumit serviciu de sistem este instalat, pornit si are configuratia corecta. | In multe situatii, Puppet este folosit pentru a ne asigura ca un anumit serviciu de sistem este instalat, pornit si are configuratia corecta. | ||
Line 11: | Line 11: | ||
Intre primele doua avem o relatie de tip "before / require", iar intre ultimele doua o relatie de tip "notify / subscribe". | Intre primele doua avem o relatie de tip "before / require", iar intre ultimele doua o relatie de tip "notify / subscribe". | ||
- | Creati urmatorul manifest care implementeaza acest design pattern pentru serviciul SSH: | + | Creati urmatorul manifest care implementeaza acest design pattern pentru serviciul SSH, apoi aplicati manifestul. |
<code> | <code> | ||
Line 30: | Line 30: | ||
</code> | </code> | ||
- | === (Exercitiu) === | + | Modificati diverse stari ale tripletului "package / file / service", apoi reaplicati manifestul. De exemplu: |
+ | * dezinstalati pachetul; | ||
+ | * modificati fisierul de configurare; | ||
+ | * opriti serviciul. | ||
+ | |||
+ | === Exercitiu - Apache === | ||
Creati un manifest de tip "package / file / service" pentru serviciul Apache. | Creati un manifest de tip "package / file / service" pentru serviciul Apache. | ||
+ | <note> | ||
+ | Fisierul de configurare trebuie sa aiba ca sursa o copie a fisierului actual. | ||
+ | </note> | ||
+ | <note> | ||
+ | In CentOS, pachetul pentrul serverul Apache se numeste **httpd**, iar fisierul de configurare se afla in **/etc/httpd/conf/httpd.conf** | ||
+ | </note> | ||
+ | |||
+ | <solution -hidden> | ||
+ | <code> | ||
+ | package {'httpd': | ||
+ | ensure => installed, | ||
+ | } | ||
+ | -> | ||
+ | file {'/etc/httpd/conf/httpd.conf': | ||
+ | ensure => file, | ||
+ | source => '/root/examples/answers/httpd.conf', | ||
+ | } | ||
+ | ~> | ||
+ | service {'httpd': | ||
+ | ensure => running, | ||
+ | } | ||
+ | </code> | ||
+ | </solution> |