This is an old revision of the document!


05. [20p] Variabile si selectori

Variabile

Pentru a defini variabile in Puppet, folosim sintaxa $variabila, atat pentru atribuire, cat si pentru referentiere.

Rescriem manifestul pentru fisierul my_file, definind continutul fisierului intr-o variabila:

$my_content = "File created using Puppet."

file {'my_file':
  path    => '/tmp/my_file',
  ensure  => present,
  mode    => 0640,
  content => $my_content,
}

Facts

In afara de variabilele definite de utilizator, Puppet defineste si anumite variabile de sistem. Acestea se numesc facts.

Pentru a vizualiza toate aceste variabile, folosim comanda facter:

[root@learn ~]# facter 
architecture => i386
augeasversion => 1.1.0
bios_release_date => 12/01/2006
bios_vendor => innotek GmbH
bios_version => VirtualBox
blockdevice_sda_model => VBOX HARDDISK
blockdevice_sda_size => 8589934592
blockdevice_sda_vendor => ATA
blockdevices => sda
...

If

Un exemplu de folosire a variabilelor de sistem este luarea anumitor decizii in functie de valoarea acestora.

Urmatorul manifest se asigura ca serviciul NTP:

  • este pornit daca masina este fizica;
  • este oprit daca masina este virtuala.

Decizia se ia in functie de valoarea variabile de sistem $is_virtual.

if str2bool("$is_virtual") {
  service {'ntpd':
    ensure => stopped,
    enable => false,
  }
}
else {
  service { 'ntpd':
    name       => 'ntpd',
    ensure     => running,
    enable     => true,
    hasrestart => true,
    require => Package['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.

saisp/labs/10/contents/05.1494873832.txt.gz ยท Last modified: 2017/05/15 21:43 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