"Puppetixing" Xen Server 6.2.0 - Å gjøre XenServer 6.2.0 spille pent med Puppet

Dette er en gjest innlegg skrevet av Alex Rodriguez

Om forfatteren

Alex Rodriguez er en. Linux dev-ops administrator, for å kjøre Puppet administrere en SaaS plattform på ca 70 Linux-servere. Det store flertallet av dem er virtualiserte verter kjører CentOS 06.03 til 06.05 på XenServer 6.2.0 hypervisor; betyr at han hadde ca 15 bare metall XenServers skal håndtere manuelt; helligbrøde, når du blir vant til Puppet;)

Kontakt forfatteren: [email protected]

Forutsetninger

Krav som ikke dekkes på denne artikkelen:

Puppet server installert og konfigurert, inkludert riktig manifesterer, plug-ins, etc.

XenServer 6.2.0 hypervisor riktig konfigurert og eventuelt et medlem av en Xen Pool.

Miljø

Puppet server: "puppet01"

 [root @ puppet01: /tmp] # uname -aLinux puppet01 2.6.32-358.14.1.el6 .x86_64 # 1 SMP ti 16 juli 23:51:20 UTC 2013 x86_64 x86_64 x86_64 GNU /Linux [root @ puppet01: /tmp] # [root @ puppet01: /tmp] # cat /etc /redhat-releaseCentOS frigjøre 6,4 (Slutt ) [root @ puppet01: /tmp] # [root @ puppet01: /tmp] # facter $ serverversionarchitecture = > x86_64 ... kernel = > Linuxkernelmajversion = > 2.6kernelrelease = > 2.6.32-358.14.1.el6.x86_64 ... puppetversion = > 3.2.3 

XenServer 6.2.0 hypervisor: "xen01"

 [root @ xen01 ~] # xe host-liste params = name-beskrivelse, software-versjon-beskrivelse (RW): default installasjon av XenServer software-versjon (MRO): PRODUCT_VERSION: 6.2.0; product_version_text: 6.2; product_version_text_short: 6.2; platform_name: XCP; platform_version: 1.8.0; product_brand: XenServer; build_number: 70446c; vertsnavn: othone-2; dato: 2013-06-21; DBV: 2013.0621; xapi: 1,3; Xen: 4.1.5; linux: 2.6.32.43-0.4.1.xs1.8.0.839.170780xen; xencenter_min: 2.0; xencenter_max: 2.0; network_backend: openvswitch; xs: XenServer-transfer-vm: XenServer Transfer VM, versjon 6.2.0, bygge 70314c; xs: main: XenServer Pack, versjon 6.2.0, bygge 70446c; XCP: main: Base Pack, versjon 1.8.0, bygge 70446c [root @ xen01 ~] # 

Prosedyre
Installer Puppet klient På XenServer:
Installer avhengige Epel og PuppetLabs YUM repos:
 [root @ xen01 tmp] # wget http://dl.fedoraproject.org/pub/epel/5/$(uname -i) /epel-release-5-4.noarch.rp [root @ xen01 tmp] # [root @ xen01 tmp] # rpm Uvh Epel-release-5-4.noarch.rpmPreparing ... ####################### #################### [100%] 1: Epel-release [root @ xen01 tmp] # wget https://yum.puppetlabs.com/el/5 /products/i386/puppetlabs-release-5-7.noarch.rpm[root@xen01 tmp] # rpm Uvh /tmp /puppetlabs-release-5-7.noarch.rpmPreparing ... ####### #################################### [100%] 1: puppetlabs-release ##### ###################################### [100%] [root @ xen01 tmp] #XenServer 6.2.0 er basert på CentOS, har dermed si CentOS yum depotet konfigurasjon, det bare må være aktivert 
 [root @ xen01 tmp] # sed -i 's /frigitt = 1 /enabled = 0 /g '/etc/yum.repos.d/CentOS-Base.repoInstall marionett klient: 
 [root @ xen01 tmp] # yum install marionett-3.2.3-1.el5 ... Avhengig Resolved============================================================================================================================================================================= Pakken Arch versjon Repository Size=============================================================================================================================================================================Installing: dukketeater noarch 3.2.3-1.el5 puppetlabs-produkter 1,0 MInstalling for avhengig: augeas-libs i386 0.10.0-4.el5 puppetlabs-deps 373 k facter i386 1: 1.7.5-1.el5 puppetlabs-produkter 87 k Hiera noarch 1.3.2-1.el5 puppetlabs-produkter 23 k libX11 i386 1.0.3-11.el5_7.1 basen 797 k libXau i386 1.0.1-3.1 basen 18 k libXdmcp i386 1.0.1-2.1 basen 19 k libselinux-ruby i386 1.33.4-5.7.el5 basen 60 k rubin i386 1.8.7.374-2.el5 puppetlabs-deps 379 k ruby-augeas i386 0.4.1-3.el5 puppetlabs-deps 22 k ruby-IRB i386 1.8.7.374-2 .el5 puppetlabs-deps 343 k ruby-libs i386 1.8.7.374-2.el5 puppetlabs-deps 2,2 M ruby-rdoc i386 1.8.7.374-2.el5 puppetlabs-deps 411 k ruby-rgen noarch 0.6.5-2.el5 puppetlabs-deps 349 k ruby-shadow i386 1: 2.2.0-2.el5 puppetlabs-deps 13 k rubygem-json i386 1.5.5-2.el5 puppetlabs-deps 772 k RubyGems noarch 1.3.7-1.el5 puppetlabs- deps 217 k tk i386 8.4.13-5.el5_1.1 basen 888 k virt-hva i386 1.11-2.el5 basen 23 k xorg-x11-filsystem noarch 7.1-2.fc6 basen 5.4 kTransaction Summary=============================================================================================================================================================================Install 20 Pakke (r) Oppgrader 0 Package (er) Total nedlastingsstørrelse: 7,9 MIS dette ok [J /N] :( 20/20): ruby-libs-1.8.7.374-2.el5.i386.rpm | 2.2 MB 00:01---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Total 1,1 MB /s | 7,9 MB 00: 07warning: rpmts_HdrFromFdno: Header V3 RSA /SHA1 signatur: NOKEY, nøkkel ID 4bd6ec30puppetlabs midler /gpgkey | 1.7 kB 00: 00Importing GPG nøkkel 0x4BD6EC30 "Puppet Labs Release Key (Puppet Labs Release Key) < [email protected]>" fra /etc /pki /rpm-gpg /RPM-GPG-KEY-puppetlabsIs dette ok [y /N]: yInstalled: puppet.noarch 0: 3.2.3-1.el5Dependency Installert: augeas-libs.i386 0: 1,1. 0-1.el5 facter.i386 1: 2.0.1-1.el5 hiera.noarch 0: 1.3.2-1.el5 libX11.i386 0: 1.0.3-11.el5_7.1 libXau.i386 0: 1,0. 1 til 3,1 libXdmcp.i386 0: 1.0.1-2.1 libselinux-ruby.i386 0: 1.33.4-5.7.el5 ruby.i386 0: 1.8.7.374-2.el5 ruby-augeas.i386 0: 0.4.1- 3.el5 ruby-irb.i386 0: 1.8.7.374-2.el5 ruby-libs.i386 0: 1.8.7.374-2.el5 ruby-rdoc.i386 0: 1.8.7.374-2.el5 ruby-rgen.noarch 0: 0.6.5-2.el5 ruby-shadow.i386 1: 2.2.0-2.el5 rubygem-json.i386 0: 1.5.5-2.el5 rubygems.noarch 0: 1.3.7-1.el5 tk .i386 0: 8.4.13-5.el5_1.1 virt-what.i386 0: 1.11-2.el5 xorg-x11-filesystem.noarch 0: 7.1-2.fc6Complete [root @ xen01 tmp] #Configure ny Puppet node 
På Puppet server, definere den nye noden
. MERK: Her er jeg sub-klassing et par dukketeater klassene vi har. Jeg vil omfatte trengte utdrag av hvert på bunnen.
Legg node definisjonen på Puppet serverens site.pp fil eller viktigste manifest fil.
 node XenServer {inkluderer common_xen} ... node xen01 arver XenServer {} På XenServer legger Puppet server konfigurasjon til /etc/puppet/puppet.conf, som så: 
 [root @ xen01 ~] # grep server /etc/puppet/puppet.conf # Puppet server server = puppet01 [root @ xen01 ~] #On XenServer, sette auto start dukketeater på oppstart: 
 [root @ xen01 ~] # chkconfig dukketeater på [root @ xen01 ~] # 

... og starte Puppet klient:

 [root @ xen01 ~] # /etc/init.d/puppet startStarting puppet agent: [OK] [root @ xen01 ~] #A noen sekunder etter at du begynner Puppet klient på XenServer, skal du se et sertifikat signere forespørsel på Puppet server. Bekrefte mottak av slik forespørsel og signere sertifikat som så: 
 [root @ puppet01: /etc /dukketeater] # puppet cert --list "xen01" (SHA256) B5:2C:87:D1:C9:D0:BE:42:F0:26:A5:CB:73:61:DA:43:C9:00:BA:21:C7:CA:5E:5A:BC:9D:9F:47:5F:61:2E:81[root@puppet01:/etc/puppet]#[root@puppet01:/etc/puppet]# dukketeater cert --sign xen01Notice: Signert sertifikat forespørsel om xen01Notice: Fjerne fil Puppet :: SSL :: CertificateRequest xen01 på '/var/lib/puppet/ssl/ca/requests/1xen01.pem'[root@puppet01:/etc/dukketeater] #Verification 
Run Puppet klient manuelt for å verifisere Puppet serverlogger klient forespørsel og klient ordentlig laster ned katalogen sin:
 [root @ xen01 ~] # dukketeater agenten --verbose --onetime --no- daemonize --splaylimit 1Info: Hente pluginInfo: Legge fakta i /var/lib/puppet/lib/facter/fstab.rbInfo: Caching katalog for xen01Info: Søknad konfigurasjon versjon '1396311876' ... Notice: /Group [Atlassian] /sikre: createdNotice : /Group [iscenesettelse] /sikre: createdNotice: /Group [produksjon] /sikre: skapt ... Merknad: Ferdig katalog ballen 2,51 sekunder [root @ xen01 ~] #Verify Puppet serverlogger XenServer node mottar katalogen sin: 
< pre> 31 mars 17:19:39 puppet01 marionett-mester [30395]: (Scope (Node [standard])) xen01 - XenServer 2.6.32.43-0.4.1.xs1.8.0.839.170780xen - dukketeater: 3.2.3Mar 31 17:20:01 puppet01 marionett-mester [30395]: Utdrag av nødvendig Puppet manifesterer
common_xen.pp manifest
 class common_xen {inkluderer postfix # Pakker pakken {"Epel-release": sikre = > "installert"} pakken {"puppetlabs-release": sikre = > installert} pakken {"yum-utils": sikre = > installert} pakken {"facter": sikre = > installert} pakken {"puppet": sikre = > "3.2.3-1.el5"} exec {"MTA-alternativ": command = > "/usr /sbin /alternativer --set mta /usr/sbin/sendmail.postfix", #unless = > "/usr /bin /test -f /usr/sbin/sendmail.postfix", path = > "/bin /: /usr /bin", krever = > Pakken ["postfix"],} # Puppet tjenesten {"puppet": sikre = > løping, aktiver = > sant, hasrestart = > sant, hasstatus = > sant,}} postfix.pp manifest 
 class postfix {pakke {"sendmail-cf": sikre = > fraværende} pakken {"sendmail": sikre = > fraværende} pakken {"postfix": sikre = > installert} pakken {"mailx": sikre = > installert} tjenesten {"postfix": sikre = > løping, aktiver = > sant, hasrestart = > sant, hasstatus = > sant, krever = > [File ["main.cf"], Pakkens ["postfix"]]}} Cheers! Anmeldelser