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