Zachu / Jani Korhonen

Linuxin keskitetty hallinta – Viikko 47

Alkuhöpinä

Seuraavassa postauksessa minulla on valmiiksi asetettu PUPMASTER ja PUPSLAVE -palvelimet, jotka vastaavat omassa verkossani pingiin PUPMASTER.local ja PUPSLAVE.local -osoitteista.

PuppetMaster asennus

PUPMASTER $ sudo apt-get -y install puppetmaster

Poistetaan olemassaolevat PuppetMaster-sertifikaatit

PUPMASTER $ sudo service puppetmaster stop
PUPMASTER $ sudo rm -r /var/lib/puppet/ssl

Lisätään master-palvelimen nimet konfiguraatiotiedostoon [master]-osion perälle

PUPMASTER $ sudoedit /etc/puppet/puppet.conf
dns_alt_names = PUPMASTER, PUPMASTER.local

Käynnistetään PuppetMaster

PUPMASTER $ sudo service puppetmaster start

PuppetSlave asennus

PUPSLAVE $ sudo apt-get -y install puppet

Lisätään PuppetMaster-palvelin konfiguraatiotiedoston perälle

PUPSLAVE $ sudoedit /etc/puppet/puppet.conf
[agent]
server = PUPMASTER.local

Asetetaan PuppetSlave käynnistymään käynnistyksen yhteydessä

PUPSLAVE $ sudoedit /etc/default/puppet
START=yes

Poistetaan vielä nykyinen sertifikaatti ja generoidaan uusi, kuten masterillekin

PUPSLAVE $ sudo rm -r /var/lib/puppet/ssl

Käynnistetään palvelu

PUPSLAVE $ sudo service puppet restart

Nyt PuppetSlaven pitäisi olla iloisesti yhdistänyt PuppetMasteriin

Hyväksytään sertifikaatit

PUPMASTER $ sudo puppet cert –list

  "pupslave" (**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**)

PUPMASTER $ sudo puppet cert –sign pupslave

notice: Signed certificate request for pupslave
notice: Removing file Puppet::SSL::CertificateRequest pupslave at '/var/lib/puppet/ssl/ca/requests/pupslave.pem'

PuppetMasterin tunkkaus

Tehdään aluksi PuppetMasterille sites-manifesti, joka on kaiken PuppetMaster-toiminnan aloituspiste. Liitämme tähän kyseiseen manifestiin nodes.pp:n, joka sisältää kuvauksen verkon eri nodeista. Aluksi luomme vain tyhjän nodes.pp:n. Liitämme samaan manifestiin myös testin vuoksi yhden kohta luomamme testimodulin, jotta näemme että koko hökötys toimii. Aloitetaan!

PUPMASTER $ sudoedit /etc/puppet/manifests/site.pp

import nodes
include testmodule

 PUPMASTER $ sudo touch /etc/puppet/manifests/nodes.pp

PUPMASTER $ $ tree /etc/puppet/modules/

/etc/puppet/modules/
└── testmodule
    └── manifests
        └── init.pp

PUPMASTER $ sudoedit /etc/puppet/modules/testmodule/manifests/init.pp

class testmodule($test="none") {

        file { '/tmp/iamtesting':
                ensure => file,
                content => "Puppet again cross the night\nAlso my test is ${test}\n",
        }

}

Nyt PuppetSlaven puppet-palvelun uudelleenkäynnistyksen jälkeen meidän pitäisi nähdä testitiedosto /tmp/iamtesting PUPSLAVE-koneella

PUPSLAVE $ sudo service puppet restart
PUPSLAVE $ cat /tmp/iamtesting
Puppet again cross the night
Also my test is none

nodes.pp

Kokeillaan vielä nodes.pp:n toimintaa. Tässä tilanteessa kuvaamme yhden olemassaolevan noden, PUPSLAVE, ja todistamme aiemmin luodulla testmodulella, että PUPSLAVE-modulen määritelmät pätee juurikin valittuun nodeen. Luomme myös yhden dummy-noden, jota ei todellisuudessa ole olemassa. Näin voimme varmistua myös siitä, ettei dummynoden asetukset saa vaikuttaa PUPSLAVE:en.

PUPMASTER $ sudoedit /etc/puppet/manifests/site.pp

import "nodes"

PUPMASTER $ sudoedit /etc/puppet/manifests/nodes.pp

node default {
        class{'testmodule':
                test => 'default',
        }
}
node 'PUPSLAVE' {
        class{'testmodule':
                test => 'slave',
        }
}
node 'DUMMY' {
        class{'testmodule':
                test => 'dumb',
        }
}

Kokeillaan PuppetSlavella toimintaa

PUPSLAVE $ sudo service puppet restart
PUPSLAVE $ cat /tmp/iamtesting
Puppet again cross the night
Also my test is slave

Huomaamme siis, että nodes.pp -määrittelymme toimii. Olemme voittaneet taas yhden erän Puppettia!

Kirjoita vastaus

Sähköpostia ei julkaista. Vaaditut kentät on merkitty *-merkillä.

Voit käyttää seuraavia HTML-tageja: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Under heavy construction :(