Introduksjon til Puppet: strømlinjeformet system Configuration


Hvis du har en Linux-system for å administrere, trenger du en god kjennskap til scripting, kommandolinje verktøy, og en tillitsverdig tekst editor. Hvis du har to eller flere, kan det være på tide å legge Puppet til denne listen.

Hver god systemansvarlig bestreber seg på å automatisere repeterende oppgaver, slik at de kan frigjøre sin tid til å fokusere på viktigere saker. Det er forskjellen mellom å tilbringe en dag på jobben kjører samme sett med kommandoer på 20 ulike systemer, eller tilbringe en dag på jobben forbedre et stykke infrastruktur eller teste en ny open source verktøy som kan være nyttig for din organisasjon. Også, det er bare ren moro å vite at du kan kjøre en enkelt kommando og gjøre hva det ville ha tatt en halv dag å fullføre.

I dette stykket, vil vi ta en titt på hva Puppet er og noen grunnleggende for å installere og bruke Puppet på en enkelt maskin. I neste opplæringen, vil vi komme inn i nitty modig og fokus på konfigurering Puppet og noen mer konkrete eksempler.

Hva er Puppet?

Så hvordan passer Puppet i alt dette? Puppet ble født til å automatisere repeterende oppgaver og for å gi systemadministratorer et fleksibelt rammeverk for å bygge videre på. Puppet er skrevet i Ruby, og består av en konfigurasjons språk for å skrive manifesterer og moduler, demoner å kjøre Puppet instruksjonene på administrerte systemer og for å koordinere maskiner som bruker dukketeater, og et dashbord for å hjelpe visualisere systemene og lage rapporter. Anmeldelser

Kort sagt: Puppet er et system for å sentralisere og standardisere konfigurasjon og administrasjon av systemer. Disse kan være stasjonære systemer, arbeidsstasjoner, servere, uansett. Nå, siden dette er Linux.com, det primære fokus for artikkelen er Linux-systemer – men Puppet ikke er begrenset til Linux. Du kan også bruke Puppet med UNIX-baserte operativsystemer som Solaris, BSDene, og Mac OS X. Ifølge Puppet nettsted, planene er også på ferde for Windows støtte på et tidspunkt " i nær fremtid, " men ingen konkret dato er satt. (Det er nok ganske mye lettere å port Puppet fra Linux eller UNIX til et annet UNIX-lignende system enn å krangle det på Windows.)

Hvis du ikke hadde gjettet allerede, er Puppet open source. Det er lisensiert under GNU General Public License (GPL).

Puppet abstraherer staten du vil at systemet skal være i fra de faktiske kommandoene som trengs for å komme til det punktet. For å si det på en annen måte, hvis du ønsker å kjøre oppdateringer på alle dine systemer som bruker Puppet, trenger du ikke å spesifisere Yum kommandoer for Fedora systemer, kommanderer zypper for opensuse, og APT kommandoer for Ubuntu og Debian-systemer. I stedet kan du skrive et manifest og kjøre den på alle dine systemer for å oppdatere dine pakker.

Opprette manifest og konfigurere alle systemer vil være litt mer arbeid, første gang. Etter det, er det mye enklere. La oss komme i gang.

Basic Puppetry

Puppet pakker bør være tilgjengelig for de fleste store distroer allerede. Bare søk etter dukketeater bruke pakkebehandleren av valget. For eksempel på Ubuntu 10.04 vil du ønsker puppet og puppet-felles for de administrerte systemer, og puppetmaster for den sentrale serveren (hvis du har flere systemer). Du vil kanskje også den vim dukke pakken hvis du skal skrive Puppet manifesterer seg i Vim, eller marionett-el hvis du ønsker å skrive manifesterer i GNU Emacs.

Når du arbeider med Puppet, du? re arbeider med ressurser
. Brukere, pakker, filer, tjenester, etc. En ressurs beskriver noe på systemet ditt. Du kan finne de vanlige typer på språket ressurs guide på Puppet Labs 'nettsted. Noen ressurser er standard på tvers av alle operativsystemer (som filer) andre er OS-avhengig (som ZFS og sonen, som er Solaris-only).

For enkle systemer, vil du vanligvis bruker dukketeater for å utføre et manifest. Husk at en manifest
er en fil som inneholder et sett med ressurser og instruksjoner om hvordan den ressursen bør konfigureres eller manipulert.

Puppet har også et skall som du kan bruke til å utføre Puppet kommandoer og konfigurere et lokalt system. The Resource Abstraction Layer Shell (ralsh) kan liste ressurser, og opererer på ressurser. Her er et enkelt eksempel for å verifisere om en bruker som finnes på systemet bruker ralsh:


 ralsh bruker norm 

Hvis norm eksisterer ikke som en brukerkonto på systemet ennå, du vil se ut:


 user {'norm': sikre = > 'fraværende'} 

Dette er Puppet gi gjeldende systemkonfigurasjon, som uttrykt i Puppet språk. Dette er hvordan du vil skrive et manifest for å fjerne bruker norm
fra et system. Hva hvis vi ønsker å legge til normen som en bruker med ralsh? Easy:


 ralsh bruker norm 

Latterlig enkelt, er det ikke? Som vil skape normen
med noen tilregnelig mislighold. Her er det åpenbart at ralsh utfører:


 user {'norm': uid = > "1 001 ', sikre = > 'tilstede', gid = > "1 001 ', hjem = > '/home /normen ", shell = > '/bin /sh'} 

Man skulle skrive det opp som et manifest og kjøre den med dukketeater på ditt lokale system. Hva om vi ønsker å gjøre norm
's skallet bash stedet for sh? La oss se på det som et manifest:


 user {'norm': uid = > "1 001 ', sikre = > 'tilstede', gid = > "1 001 ', hjem = > '/home /normen ", shell = > '/bin /sh'} 

Kopier som til en fil, som norm.pp, og endre skallet linje til Shell = > '/bin /sh'. Deretter kjører dukketeater norm.pp. Puppet vil sjekke brukeren, og gjøre de nødvendige endringer slik at brukeren er i samsvar med manifestet.

Så hvordan er dette enklere enn å kjøre kommandoer for å opprette en ny bruker på systemet? På et enkelt system, er det ikke. Hva om du trenger å opprette brukeren på 20 systemer, skjønt? Mye, mye enklere. Og dette ville fungere på Linux, Mac OS X, FreeBSD, og ​​mer.

Dette har vært en ganske rask oversikt over hvordan Puppet fungerer på et enkelt system. I neste opplæringen, vil vi se på hvordan du konfigurerer Puppet å administrere flere systemer og hvordan du kan gjøre endringer på tvers av forskjellige distroer. Anmeldelser