Seminar Puppet

Na Srcu je 7. veljače 2013. održan seminar pod naslovom Puppet, automatizacija upravljanja resursima. Seminar je pripremio i održao Jakov Šošić, sistem-inženjer Sveučilišnog računskog centra. Puppet će biti zanimljiv svima koji administriraju desetak ili više servera. U situacijama kada na pojedinom serveru više ljudi ima administratorske ovlasti, ili jedan sistemac brine o previše servera, polako se gubi  kontrola nad instaliranim softverom i njegovom konfiguracijom.

Tu nastupa Puppet, slobodni softver objavljen pod GPL licencom, koji omogućuje da se definira željeno stanje servera. Dalje se sve obavlja automatikom. Na primjer, ako neka aplikacija zahtijeva točno određenu verziju perla, upotrijebit će se deklaracija kojom se zahtijeva zadana verzija paketa. Nakon toga neće se instalirati novija inačica, dok se za ostale pakete može zadati vrijednost "latest", pa će Puppet automatski instalirati zadnje verzije.

Puppet je napisan u programskom jeziku Ruby, sintaksa će biti poznata svima koji poznaju Ruby. I obrnuto, učeći Puppet, imat ćete priliku naučiti ponešto i o Rubyju. Konfiguracija se obavlja pomoću deklarativnog jezika kojim se definira željeno stanje sustava. Kako broj servera raste, poželjet ćete odvojiti pravila koja vrijede za više servera od vrijednosti koje se dodjeljuju varijablama, a koje su različite za različite servere. Puppet to, naravno, omogućava, za tu je ulogu razvijen dodatak pod nazivom Hiera.

Puppet se ne može koristiti za instalaciju OS-a, servisa i aplikacija. On nastupa nakon što se taj posao obavi. Željeno stanje definira se koristeći DL, declarative language, čija je sintaksa, barem na prvi pogled, jednostavna:

package { 'openssh-server':
ensure => installed,
}

file { '/etc/ssh/sshd_config':
  ensure  => file,
  owner   => root,
  group   => root,
  mode    => '0640',
  require => Package['openssh-server'],
  notify  => Service['sshd'],
}

service { 'sshd':
  ensure => running,
  enable => true,
}

Iz ovog jednstavnog primjera vidi se kako su strukturirane neke od klasa pomoću kojih se opisuje stanje: servis, paket, datoteka s konfiguracijom...

Najčešće se Puppet koristi u server/client (odnosno master/agent) arhitekturi, gdje se na serveru predlošci kompajliraju u katalog, a server potpisuje klijentske certifikate da bi se osigurala sigurnost sustava. No moguće ga je koristiti i u masterless instalaciji, gdje je sav softver na istom računalu koje se puppetom i kontrolira. To bi značilo da možete koristiti puppet da biste obuzdali i samo jednog Linuxa.

 

Iako je na seminaru pokazano samo upravljanje Linux serverima, Puppet se može koristiti i za kontrolu Windowsa. Za to se pobrinula tvrtka Puppet Labs, koja nudi softver za obje platforme, i to u dvije verzije: slobodnoj, pod GPL liciencom, i enterprise, uz koju se dobija profesionalna podrška i ponešto komercijalnog softvera. Zanimljivo je da je čak i Puppet Enterprise besplatan ako ga koristite na najviše deset servera.

Srce je odabralo Puppet nakon što su proučili slične slobodne alate. Kada se usporedi s konkurentima (CFengine, Salt ili Chef), Puppet ima najveću bazu aktivnih korisnika, koji se međusobno podržavaju na Mreži. Među korisnicima su Google, Twitter, Oracle, Citrix, Dell, New York Stock Exchange, a VmWare je čak investirao 30 milijuna dolalara u razvoj Puppeta. Treba li onda reći da se s Puppetom može upravljati i virtualkama? Kroz suradnju s partnerskim tvrtkama i projektima razvijena je integracija s brojnim komercijalinim i slobodnim rješenjima, na pr. VmWareom, Amazon Web Services, Ciscom, OpenStackom, Eucalyptusom, Rightscaleom i Zenossom.

Prezentacija je dostupna na adresi http://sistemac.srce.unizg.hr/fileadmin/user_root/seminari/Srce-Sys-Seminari-Puppet.pdf

Vijesti: 
Vote: 
3.75
Vaša ocjena: Nema Average: 3.8 (4 votes)

Komentari

isti seminar odrzan je i dan kasnije u Splitu