Puppeteers Blog

Cobbler templatet

October 6, 2016 

Käytämme työasemien ja osin myös palvelimien provisioinnissa Cobbleria. Se on vahvimmillaan juuri fyysisten laitteiden provisionnissa, vaikka perustason tuki myös virtuaalikoneiden provisioinnille löytyykin. Cobbler nitoo yhteen lukuisia eri palveluita (dhcp, dns, tftp) Python-koodin avulla, joten aivojen vääntäminen sen vaatimiin asetuksiin vie aikansa. Cobblerin perusdokumentaatio on RedHatille tyypilliseen tyyliin varsin hyvää, mutta ongelmiin joutuu helposti, kun halua tehdä jotain virallisen dokumentaation ulkopuolelta. Esimerkiksi Cobblerin web-API on dokumentoitu varsin heikosti, lähinnä tässä Wiki-artikkelissa. Tässä ja tulevissa blogikirjoituksissa pyritään paikkaamaan Cobblerin dokumentaation puutetta.

Cobblerin templateja voi käyttää yksinkertaiseen konfiguraationhallintaan Cobblerilla asennetuilla koneilla. Muita konfiguraationhallintajärjestelmiä (esim. Puppet) käytettäessä Cobblerin templateista on hyötyä kuitenkin toisaalla: niiden avulla voidaan luoda esimerkiksi dynaamisesti luotuja skriptejä käyttöjärjestelmäasennuksia varten. Alla yksinkertainen esimerkki.

Ensin luodaan template-tiedosto, esimerkiksi /var/lib/cobbler/templates/test1:

#set $hostname = $getVar("hostname","")
 Hostname: $hostname

Template hakee siis Cobblerilta arvon "hostname" ja tulostaa sen tekstin "Hostname:" perään. Tämän jälkeen template liitetään profiiliin (kuten alla) tai systemiin:

$ cobbler profile edit --name=centos7 --template-files="/var/lib/cobbler/templates/test1=1"

Parametrin --template-files arvo koostuu kahdesta osasta:

  1. "/var/lib/cobbler/templates/test1": Template-tiedoston polku Cobbler-palvelimella
  2. "1": templaten tunniste

Seuraavaksi tarkistetaan vielä, että template todellakin liitettiin profiiliin:

$ cobbler profile report --name=centos7|grep "Template Files"
 Template Files : {'/var/lib/cobbler/templates/test1': '1'}

Nyt template on olemassa ja sen pohjalta luotu tiedosto voidaan noutaa esim. curl-komennolla Cobbler-palvelimelta:

$ curl -s http://127.0.0.1/cblr/svc/op/template/system/web.domain.com/path/1
 Hostname: web.domain.com

Oleellista tässä on paitsi se, että test1-templaten sisältö luodaan dynaamisesti, myös se, että tiedosto voidaan ladata Cobblerin webbipalvelimelta. Tämä on kätevää esimerkiksi Windowsia provisioitaessa, sillä Cobbler ei pysty välittämään mitään System-olion parametrien arvoja WinPE:lle suoraan sen käynnistyksen yhteydessä, vaan parametrit on selvitettävä jälkikäteen.

Samuli Seppänen
Samuli Seppänen
Author archive
menucross-circle