This shows you the differences between two versions of the page.
|
saisp:labs:10:contents:05 [2014/01/24 17:08] alexandru.carp [05. Variabile si selectori] |
saisp:labs:10:contents:05 [2017/05/22 17:28] (current) alexandru.carp |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ==== 05. Variabile si selectori ==== | + | ==== 05. [20p] Variabile si selectori ==== |
| - | === (Tutorial) Variabile === | + | === Variabile === |
| Pentru a defini variabile in Puppet, folosim sintaxa ''$variabila'', atat pentru atribuire, cat si pentru referentiere. | Pentru a defini variabile in Puppet, folosim sintaxa ''$variabila'', atat pentru atribuire, cat si pentru referentiere. | ||
| Line 18: | Line 18: | ||
| </code> | </code> | ||
| - | === (Tutorial) Facts === | + | === Facts === |
| In afara de variabilele definite de utilizator, Puppet defineste si anumite variabile de sistem. Acestea se numesc **facts**. | In afara de variabilele definite de utilizator, Puppet defineste si anumite variabile de sistem. Acestea se numesc **facts**. | ||
| Line 38: | Line 38: | ||
| </code> | </code> | ||
| - | === (Tutorial) If === | + | === If === |
| Un exemplu de folosire a variabilelor de sistem este luarea anumitor decizii in functie de valoarea acestora. | Un exemplu de folosire a variabilelor de sistem este luarea anumitor decizii in functie de valoarea acestora. | ||
| Line 66: | Line 66: | ||
| </code> | </code> | ||
| - | === (Exercitiu) Instalare NTP === | + | Aplicati manifestul si observati starea serviciului NTP. |
| + | === Manifest pentru instalare NTP === | ||
| + | |||
| + | Mai intai, dezinstalati serverul de NTP din masina virtuala. | ||
| + | |||
| + | Apoi, scrieti un manifest care: | ||
| + | * sa instaleze pachetul pentru serverul NTP; | ||
| + | * sa se asigure ca serviciul NTP este pornit (numele serviciului difera, in functie de distributia de Linux); | ||
| + | * sa se asigure ca fisierul de configurare este cel corect (in functie de distributie). | ||
| + | Folositi structura conditionala **case**. | ||
| + | |||
| + | <note> | ||
| + | Consultati documentatia pentru **case**: https://docs.puppet.com/puppet/3.5/lang_conditional.html#case-statements | ||
| + | </note> | ||
| + | |||
| + | <note> | ||
| + | * Pentru Ubuntu sau Debian serviciul se numeste **ntp** iau pentru Redhat si Fedora se numeste **ntpd**. | ||
| + | * Descarcati fisierul de configurare pentru Debian / Ubuntu (https://github.com/ihcsim/puppet-tutorial/blob/master/src/modules/ntp/files/ntp.conf.debian) sau RedHat / Fedora (https://github.com/ihcsim/puppet-tutorial/blob/master/src/modules/ntp/files/ntp.conf.el) | ||
| + | </note> | ||
| + | |||
| + | <solution -hidden> | ||
| + | <code> | ||
| + | case $operatingsystem { | ||
| + | centos, redhat: { | ||
| + | $service_name = 'ntpd' | ||
| + | $conf_file = 'ntp.conf.el' | ||
| + | } | ||
| + | debian, ubuntu: { | ||
| + | $service_name = 'ntp' | ||
| + | $conf_file = 'ntp.conf.debian' | ||
| + | } | ||
| + | } | ||
| + | |||
| + | package { 'ntp': | ||
| + | ensure => installed, | ||
| + | } | ||
| + | file { 'ntp.conf': | ||
| + | path => '/etc/ntp.conf', | ||
| + | ensure => file, | ||
| + | require => Package['ntp'], | ||
| + | source => "/root/${conf_file}" | ||
| + | } | ||
| + | service { 'ntp': | ||
| + | name => $service_name, | ||
| + | ensure => running, | ||
| + | enable => true, | ||
| + | subscribe => File['ntp.conf'], | ||
| + | } | ||
| + | </code> | ||
| + | </solution> | ||