Kirjoitan tämän artikkelin osana Tero Karvisen vetämää Linuxin keskitetty hallinta -kurssia. Tehtäväksi saimme luoda lyhyen Hei maailma! esimerkin puppetilla.

Puppet on työkalu Linuxin keskitettyyn hallintaan. Puppetilla voimme luoda omia moduuleja, joille voimme koodata tiettyjä tehtäviä, ja Puppet pitää huolen siitä, että se pitää sen ja orja-tietokoneet ajantasalla. Puppet on hyvä työkalu kun hallitset useita Linux-tietokoneita, joille tarvitset samoja ominaisuuksia. Puppetin avulla et joudu jokaiselle tietokoneelle tekemään erillisiä asennuksia / konfiguraatioita, vaan pystyt hoitamaan sen keskitetysti, jolloin työtehokkuus paranee.

Työvaiheet:
1. Asennetaan puppet.
2. Testataan asennus.
3. Luodaan uusi puppet moduuli.

Ensimmäseksi asennetaan puppet:

$ sudo apt-get update
$ sudo apt-get install puppet

Yhdenrivin Puppet testi

Puppetin toiminnan voimme testaa Tero Karvisen artikkelissa Hello Puppet revisited – on Ubuntu 12.04 LTS mainitsemalla yhden rivin testillä:

$ puppet apply -e 'file { "/tmp/heiPuppet": content => "Hei Puppet!" }'

Puppet vastaa:

notice: /Stage[main]//File[/tmp/heiPuppet]/ensure: defined content as '{md5}306f13b60c36a7fbd6fee421fec478f6'
notice: Finished catalog run in 0.01 seconds

Kun ajamme komennon uudestaan saamme tulokseksi:

notice: Finished catalog run in 0.01 seconds

Ajettuamme komento uudestaan, puppet ei sano tehneensä mitään. Tämä johtuu siitä, että kaikki oli ajantasallaan, eli tiedosto /tmp/heiPuppet oli olemassa, ja siellä lukee "Hei Puppet!".

Luo uusi Puppet moduuli

Seuraavaksi teemme yksinkertaisen puppet moduulin, joka hoitaa tämän saman operaation. Puppet moduulit ovat siis ohjelmia, joiden avulla puppettia hallinnoidaan.

Tehdään uusi heipuppet moduuli (HUOM! Moduulin nimi tulee kirjoittaa pienellä!). Ensimmäiseksi tehdään seuraava kansiorakenne puppet moduulia varten, ja tehdään manifestsin alle init.pp -tiedosto, jonne puppetin ohjelmointi suoritetaan:

$ mkdir -p modules/heipuppet/manifests/
$ nano modules/heipuppet/manifests/init.pp

Kirjoitetaan seuraava koodinpätkä init.pp -tiedostoon:

class heipuppet {
  file { '/tmp/heiPuppet':
    content => "Hei Puppet!\nTämä tiedoston teki meidän Puppet moduuli!"
  }
}

Moduulin voit ajaa seuraavalla komennolla:

$ puppet apply --modulepath modules/ -e 'class {"heipuppet":}'

Ja näin meidän /tmp kansioon on onnistuneesti syntynyt heiPuppet tiedosto.

Lähde

http://terokarvinen.com/2013/hello-puppet-revisited-%E2%80%93-on-ubuntu-12-04-lts