Puppet

Vi bruker Puppet til å distribuere konfigurasjon og alt mulig annet nyttig til flere og flere maskiner på Samfundet (ITK-arbeidsstasjoner, musikkmaskiner, Billig-dørklienter, mm.). Puppet er en erstatning for cfengine som vi brukte før, som igjen var en erstatning for rdist.

cassarossa er puppetmaster. All konfigurasjon ligger under /etc/puppet og er versjonskontrollert i bzr, sammen med resten av /etc. SSL-filer for puppet ligger i /var/lib/puppet. For at ssl-sertifikatet til cassarossa skal godkjennes under DNS-navnet puppet.samfundet.no må vi signere sertifikatet selv med filene på bjeff:/root/pupp-ca. Alle andre sertifikater håndteres pent av puppetca.

Filer hostes fra apache, og bruker ssl-sertifikatet direkte fra puppet sine mapper. Den og puppetmaster må restartes ved bytte av cassarossa sitt puppet-ssl-sertifikat.

For mer informasjon om Puppet se Puppets hjemmeside, spesielt TypeReference.

Ninjatips

Om du lagrer et manifest (en .pp-fil), får puppetmasterd det med seg automagisk etter 15 sekunder. En trenger altså ikke å SIGHUPe puppetmasterd. Dog er det verdt å huske på de 15 sekundene før en eventuelt kjører puppetd –test -v på en puppet-node. Dette betyr for så vidt også at det er lett å borke puppet-manifestene om man f.eks. har for vane å lagre ofte, f.eks. mens det er syntaksfeil i filen fordi du ikke har skrevet noe ferdig.

Nodene kjører puppet hvert 30. minutt.

Manifeststruktur

Puppets konfigurasjon for klientene kalles manifester. De bor i cassarossa:/etc/puppet/manifests/ og beskriver konfigurasjonen for nodene.

Environments

puppet-oppsettet vårt bruker environments for å skille manifester mellom f.eks. tjenere og arbeidsstasjoner, slik at det blir vanskeligere å gnøkke noe til ved en feil. Manifestene til hvert environment ligger i cassarossa:/etc/puppet/manifests/{servers,billig,other}/.

Filen site.pp er den eneste filen som i utgangspunktet leses, og den inkluderer igjen resten av filene. Standardverdier for endel klasser og definisjoner defineres her.

nodes.pp lister alle nodene og hvilke klasser de er med i. Det er her du legger til en ny maskin som skal styres av puppet.

I nodeclasses.pp defineres hvilke andre klasser en logisk hovedklasse inkluderer. Eksempelvis finnes det en common-klasse, som drar med seg ntp-konfig, IPv6-moduler og en del andre felles ting. Videre finnes det klasser for arbeidsstasjoner, tjenere, Billig-dørklienter og slikt.

I classes/*.pp er alle klasser med spesifikk funksjonalitet definert. Eksempelvis inneholder ntp.pp manifest over ntp-konfigurasjon.

pkgsync og puppet

Pakker til pkgsync styres nå med puppet. Om du vil ha en gitt pakke inn i pkgsync, legger du den til i én av cassarossa:/etc/puppet/manifests/classes/pacakges/*.pp - pakkene sorteres logisk etter kategori. (Ditt nye favorittskall legger du f.eks. til i shells.pp.)

Dersom du trenger å dra med en pakke med pkgsync i en annen klasse, bruker du pkgsync-definisjonen slik (her med de livsviktige pakkene sl og bc):

pkgsync { [sl, bc]:
   ensure => present,
}

Merk at klassen aptitude også legger inn pakken i pkgsync. I de aller fleste tilfeller ønsker du å bruke aptitude-klassen når du trenger en pakke i en klasse, slik at den blir installert før eventuelle konfigfiler og slikt flyttes over.

Videre er package filene per idag delt på tvers av distroer for arbeidsstasjoner. Det er ikke alle pakker som finnes i alle distroene vi kjører, sjekk derfor med rmadison om den finnes i de før du legger den in. Skulle den bare finnes i en kan du gjøre noe ala:

if $lsbdistcodename == 'squeeze' {
        pkgsync { [
                        kde-standard,
                ]:
                ensure => present,
        }
}

IP-adresser og puppet

Arbeidsstasjonene får satt IP-adresser med puppet.

Passord

rootpassord distes til maskinene med puppet. Passordet for lavsikkerhetsmaskiner finnes i

/etc/puppet/manifest/default/classes/lowsecrootpasswd.pp lag nytt med

$mkpasswd -m sha-512

og bytt ut cheksummen i filen med den nye du fikk.

(Husk filen skal ikke være i bzr.)

Lenker: Start, cfengine, infotavler, kurs, ldap, musikk, padl, rdist, til nye itkere

Mail: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2012-05-16 21:06 | Revisjon: 16 (historie, blame) | Totalt: 1469 kB | Rediger