This is an old revision of the document!


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

Scrieti un manifest care sa instaleze pachetul corect pentru serverul NTP, in functie de distributia de Linux. Folositi structura conditionala case.

saisp/labs/10/contents/05.1399806283.txt.gz ยท Last modified: 2014/05/11 14:04 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