|
|
Közzétéve 2014. 10. 20. 9:47:45
|
|
|

1. Bevezetés a bábba
A rendszergazdák gyakran ismétlődő feladatok sorozatában ragadnak: csomagok frissítése, konfigurációs fájlok, rendszerszolgáltatások, cron feladatok kezelése, új konfigurációk hozzáadása, hibák javítása stb. Ezek a feladatok gyakran ismétlődőek és hatékonyanak, és az első válasz a megoldásukhoz az automatizálás, így egyedi szkriptek jelennek meg. A környezet összetettsége miatt az egyedi szkripteket és alkalmazásokat többször fejlesztik, amelyeket nehéz több platformra beilleszteni, és a rugalmasság és a funkcionalitás nehezen garantálható, ezért megjelentek az automatizált konfigurációkezelő eszközök, mint a Puppet.
A nyílt forráskódú világban számos konfigurációs eszköz közül választhatsz, és néhány kulcsfontosságú termék ezen a téren:
Puppet (http://puppet.reductivelabs.com/): Egy Ruby nyelvű konfigurációkezelő eszköz, amely a C/S architektúrát használja deklaratív nyelven konfigurálva a kliensre. Cfengine (http://www.cfengine.org): Az egyik első nyílt forráskódú konfigurációs eszköz, amelyet 1993-ban adtak ki, egyben C/S architektúra is, általában oktatási intézményekben használják. LCFG(http://www.lcfg.org/): Egy konfigurációkezelő eszköz C/S architektúrákhoz, amely XML-t használ a konfigurációk definiálására. Bcfg2: Egy konfigurációkezelő eszköz C/S architektúrához, Python nyelven, amely specifikációkat és kliensválaszokat használ a célállomás konfigurálásához.
Ez a dokumentum annak leírására szolgál, hogyan használhatod a Puppetet a hoszted, alkalmazások, háttérprogramok és különféle szolgáltatások kezelésére.
A Bábról:
1. Mire használják a Bábot?
A Puppet egy nyílt forráskódú Ruby alapú rendszerkonfigurációs menedzsment eszköz, amely a C/S telepítési architektúrára támaszkodik. A fő fejlesztő Luke Kanies, amely a GPLv2 szerzői jogi licencét követi. 1997 óta Kanies részt vesz az UNIX rendszeradminisztrációban, és a Puppet fejlesztése ebből a tapasztalatból fakadt. Mivel nem volt elégedett a rendelkezésre álló konfigurációs eszközökkel, a Kanies 2001 és 2005 között kezdett el eszközöket fejleszteni a Reductive laborban. Hamarosan a Reductive Labs kiadta zászlóshajó termékét, a Puppet-et.
2. Pupput jellemzői
Sok rendszerkonfigurációs menedzsment eszköz nagyon hasonlóan működik, például a cfengine. Mi teszi a Puputet egyedivé?
A Kukla szintaxisa lehetővé teszi, hogy külön szkriptet hozz létre, hogy minden célállomáson felhasználót építs. Minden célállomás sorban értelmezi és hajtja végre a modult a helyi rendszerre vonatkozó szintaxissal. Például, ha ezt a konfigurációt egy Red Hat szerveren hajtják végre, hozz létre egy felhasználót a useradd parancs segítségével; Ha ezt a konfigurációt egy FreeBSD hoszton hajtják végre, adduser parancsot használnak.
A Puppet másik figyelemre méltó tulajdonsága a rugalmassága. A nyílt forráskódú szoftverek természete miatt szabadon beszerezheted a Puppet forráskódját, és ha problémákkal szembesülsz és lehetőséged van rá, módosíthatod vagy fejlesztheted a Puppet kódját a környezetedhez igazítva. Emellett a közösségfejlesztők és adományozók tovább fejlesztik a Kukla képességeit. Egy nagy fejlesztői és felhasználói közösség is elkötelezett a Puppet dokumentációjának és technikai támogatásának biztosítása mellett.
A báb könnyen megméretezhető. Egyedi csomagtámogatás és speciális rendszerkörnyezet-beállítások gyorsan és könnyen hozzáadhatók a Puppet telepítőhöz.
3. Báb működési módja
A Puppet egy C/S architektúrájú konfigurációkezelő eszköz, amely a báb-szerver csomagot (Puppet masternek nevezik) telepíti egy központi szerverre. Telepítsd a Puppet kliensszoftvert (nevén Puppet Client) a kezelendő célhoszton. Amikor a kliens csatlakozik a Puppet masterhez, a Puppet masteren definiált konfigurációs fájl lefordítódik, majd az ügyfélen fut. Alapértelmezés szerint minden kliens félóránként kommunikál a szerverrel, hogy megerősítse a konfigurációs információk frissítését. Ha új konfigurációs információ vagy konfigurációs információ változott, a konfigurációt újrafordítják és közzéteszik minden kliensnek végrehajtásra. Aktívan aktiválhatod a szerver konfigurációs információinak frissítését, hogy minden klienst beállítson ez. Ha az ügyfél konfigurációs adatai megváltoznak, a szervertől az eredeti konfigurációt is meg tudja javítani.
Konfigurációkezelés: Báb telepítése és használata (1)
4. A Báb jövője
Végül a Puppet egy fiatal eszköz, amely még fejlesztés alatt áll. A bábközösség gyorsan növekszik, és folyamatosan sok új ötlet épül be, ami naponta fejlesztéseket, frissítéseket és modulokat eredményez.
2. Konfiguráció és telepítés (Puppet 2.6.4 CentOS 5.4 telepítés):
Konfiguráld a tárolót a puppet szerveren és kliensen: rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm [root@puppetmaster ~]# vi /etc/yum.repos.d/epel.repo Hozzáadás: [báb] név=epel báb baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/ enabled=0 gpgcheck=0
Add hozzá a puppet.repo repository-t: [root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo [báblabok] name=Puppet Labs csomagok baseurl=http://yum.puppetlabs.com/base/ enabled=0 gpgcheck=0
Bábmester installáció: [root@puppetmaster ~]# yum --enablerepo=epel,epel-puppet install puppet-server
Módosítsuk a hosztokat, és adjuk hozzá a következő két rekordot: [root@puppetmaster ~]# vi /etc/hosts 192.168.0.10 puppetmaster.leju.com báb 192.168.0.100 puppetclient.leju.com
Configuring Puppet: [root@puppetmaster ~]# cd /stb/bábu/ [root@puppetmaster báb]# vi báb.conf
[fő] # A Báb naplókönyvtára. # Az alapértelmezett érték '$vardir/log'. logdir = /var/log/báb
# Ahol a Puppet PID fájlokat tárolják. # Az alapértelmezett érték '$vardir/run'. rundir = /var/run/báb
# Ahol SSL tanúsítványokat őriznek. # Az alapértelmezett érték '$confdir/ssl'. ssldir = $vardir/ssl
[ügynök] # Az a fájl, amelyben a báb tárolja az osztályok listáját # a lekért konfigurációhoz kapcsolódik. Be lehet tölteni # a különálló ''báb'' futtatható fájl a ''--loadclasses'' használatával # opció. # Az alapértelmezett érték '$confdir/classes.txt'. classfile = $vardir/classes.txt
# Ahol a báb rejtőzköli a helyi konfigurációt. Egy # kiterjesztés, amely jelzi, hogy a cache formátum automatikusan kerül hozzáadásra. # Az alapértelmezett érték '$confdir/localconfig'. localconfig = $vardir/localconfig szerver = puppetmaster.leju.com jelentés = igaz Hallgasd = igaz
[mester] ssl_client_header = SSL_CLIENT_S_DN ssl_client_verify_header = SSL_CLIENT_VERIFY autosign = true jelentések = áruház
[root@puppetmaster bábla]# vi fileserver.conf [fájlok] path /etc/báb/fájlok engedd *
[modulok] engedd *
[pluginok] engedd *
[root@puppetmaster báb]# mkdir /etc/báb/fájlok
[root@puppetmaster báb]# CD megjelenik/ Create site.pp, ami a bábbejegyzés konfigurációs fájlja: [root@puppetmaster manifests]# vi site.pp importál "modules.pp" import "roles.pp" importál "nodes.pp"
# Általános beállítások a szabványos típusokhoz Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }
filebucket { main: server => "puppetmaster.leju.com" } Fájl { backup => fő }
Create modules.pp to import modules: [root@puppetmaster manifests]# vi modules.pp Import "teszt"
Create roles.pp szerver szerepek: [root@puppetmaster manifests]# vi roles.pp class baseclass { Include teszt
}
Create nodes.pp a szerver node-ok konfigurálásához: [root@puppetmaster manifests]# vi nodes.pp Node 'basenode' { include baseclass
}
Node 'puppetclient.leju.com' inherits basenode { tag("teszt")
}
Node 'puppetmaster.leju.com' inherits basenode { tag("teszt")
}
[root@puppetmaster megjelenik]# cd .. [root@puppetmaster báb]# mkdir modulok Hozz létre egy tesztmodult: [root@puppetmaster modulok]# mkdir -p test/manifests/ [root@puppetmaster modulok]# mkdir teszt/fájlok/ [root@puppetmaster modulok]# CD teszt/fájlok/ [root@puppetmaster fájl]# vi test.txt Tesztvonal! [root@puppetmaster fájlok]# cd .. /megnyilvánul/ Hozz létre egy tesztosztályt, hogy fájlt juttass el az ügyfélnek: [root@puppetmaster manifests]# vi init.pp osztályteszt { fájl { "/tmp/test.txt": ensure => jelen, csoport => "gyökér", tulajdonos => "gyökér", mode => "0644", forrás => "puppet:///test/test.txt" }
}
A Puppet Master indítása: [root@puppetmaster megnyilvánul]# /etc/init.d/puppetmaster start Győződj meg róla, hogy a 8140-es port be van kapcsolva.
Puppet kliens-telepítés: [root@puppetclient ~]# yum --enablerepo="epel,epel-puppet" telepít báb
Módosítsuk a hosztokat, és adjuk hozzá a következő két rekordot: [root@puppetclient ~]# vi /etc/hosts 192.168.0.10 puppetmaster.leju.com báb 192.168.0.100 puppetclient.leju.com
A báb konfigurálása: [root@puppetclient ~]# cd /etc/puppet/ [root@puppetclient báb]# vi báb.conf [fő] # A Báb naplókönyvtára. # Az alapértelmezett érték '$vardir/log'. logdir = /var/log/báb
# Ahol a Puppet PID fájlokat tárolják. # Az alapértelmezett érték '$vardir/run'. rundir = /var/run/báb
# Ahol SSL tanúsítványokat őriznek. # Az alapértelmezett érték '$confdir/ssl'. ssldir = $vardir/ssl
[ügynök] # Az a fájl, amelyben a báb tárolja az osztályok listáját # a lekért konfigurációhoz kapcsolódik. Be lehet tölteni # a különálló ''báb'' futtatható fájl a ''--loadclasses'' használatával # opció. # Az alapértelmezett érték '$confdir/classes.txt'. classfile = $vardir/classes.txt
# Ahol a báb rejtőzköli a helyi konfigurációt. Egy # kiterjesztés, amely jelzi, hogy a cache formátum automatikusan kerül hozzáadásra. # Az alapértelmezett érték '$confdir/localconfig'. localconfig = $vardir/localconfig
szerver = puppetmaster.leju.com jelentés = igaz Hallgasd = igaz
[root@puppetclient báb]# vi namespaceauth.conf [bábfutár] engedd puppetmaster.leju.com engedd *.leju.com
[root@puppetclient báb]# vi auth.conf Add hozzá az engedély * gombot az utolsó sorhoz ...... Út / hitelesítés engedd *
[root@puppetclient báb]# cd Execute puppetd: [root@puppetclient ~]# báb --noop --teszt --nyom --debug Ha a Puppet Master nem állítja be: autosign=true, akkor a Puppet Masterben kell végrehajtani: [root@puppetmaster ~]# bábcert -l puppetclient.leju.com [root@puppetmaster ~]# bábcert -s puppetclient.leju.com Így írd puppetclient.leju.com. Ezután térj vissza az ügyfélhez, hogy itt hajtsd végre: [root@puppetclient ~]# báb --noop --teszt --nyom --debug Csatlakozz --noop, a konfiguráció nem igazán lesz alkalmazható a kliensre, főként tesztelésre használják, hogy lássuk, vannak-e hibák a kinyomtatottban, és hibázatlanul hajtsák végre: [root@puppetclient ~]# báb --teszt --nyom --hibakeresés
Tekintse meg a dokumentumot: [root@puppetclient ~]# ll /tmp/ összesen 8 -rw-r--r-- 1 gyökér 11. febr. 25. 22:35 test.txt A dokumentumot kiadták.
A Puppet Master-re is lehet nyomást gyakorolni: [root@puppetmaster ~]# bábrúgás -d --gazda puppetclient.leju.com Kiváltó puppetclient.leju.com Státusz megszerzése A státusz a siker puppetclient.leju.com 0-s kilépési kóddal fejeztem be Kész A visszamutató 0 azt jelzi, hogy a kliensen a báb sikeresen aktiválódott.
Állítsd be a bábot automatikus indításra: chkconfig --level 2345 Puppet on
Módosítsd a Bábmestert az Utas használatára Az Passenger az Apache 2.x kiterjesztése, amely Rails vagy Rack alkalmazásokat futtat Apache-ban. Alapértelmezés szerint a WEBrick-et használja a fájlszolgáltatások biztosítására, ha sok bábkliens van, a Puppetmaster fájlszolgáltatási teljesítménye gyenge lesz, hogy a Puppetmaster robusztusabb legyen, ezért használd az Apache-t fájlszolgáltatások biztosítására.
Telepítés: [root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems Az utas 2.2.2 RHEL5 jól működik. Add foreman.repo repository: [root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo [művezető] name=Foreman stabil tároló baseurl=http://yum.theforeman.org/stable gpgcheck=0 enabled=1 [root@puppetmaster ~]# yum install rubygem-passenger-2.2.2-1 [root@puppetmaster ~]# rubygem-rack-1.0.1-1 [root@puppetmaster ~]# passenger-install-apache2-module
Az Apache SSL modul telepítése: [root@puppetmaster ~]# finom telepített mod_ssl
A Puppet rack alkalmazás konfigurálásához: mkdir -p /etc/báb/rack/puppetmasterd/ mkdir /etc/báb/rack/puppetmasterd/public /etc/puppet/rack/puppetmasterd/tmp cp /usr/share/puppet/ext/rack/files/apache2.conf /etc/httpd/conf.d/puppetmasterd.conf cp /usr/share/puppet/ext/rack/files/config.ru /etc/puppet/rack/puppetmasterd/ Chown Puppet /etc/Puppet/rack/puppetmasterd/config.ru
[root@puppetmaster ~]# vi /etc/httpd/conf.d/passenger.conf LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2 UtasRuby /usr/bin/ruby UtasMaxPoolMéret 30 UtasPoolIdleIdő 1500 PassengerMaxRequests 1000 UtasStatThrottleRate 120 RackAutoDetect Off Sínek automatikus észlelése kikapcsolva
[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf # Valószínűleg ezeket a beállításokat akarod hangolni Utas Magas Teljesítmény UtasMaxPoolMéret: 12 UtasPoolIdleIdő 1500 # PassengerMaxRequests 1000 UtasStatThrottleRate 120 RackAutoDetect Off Sínek automatikus észlelése kikapcsolva
Hallgasd meg 8140
<VirtualHost *:8140> SSLEngine on SSLProtocol -ALL +SSLv3 +TLSv1 SSLCipherSuite MINDENKI:! ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP
SSLCertificateFile /var/lib/puppet/ssl/certs/puppetmaster.leju.com.pem SSLCertificateKeyFile /var/lib/puppet/ssl/private_keys/puppetmaster.leju.com.pem SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem SSLCACertificateFile /var/lib/puppet/ssl/ca/ca_crt.pem # Ha az Apache panaszkodik érvénytelen aláírásokról a CRL-en, megpróbálhatod kikapcsolni # CRL ellenőrzés a következő sorban kommentelve, de ez nem ajánlott. SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem SSLVerifyClient opcionális SSLVerifyDepth 1 SSLOptions +StdEnvVars
# Az alábbi kliensfejlécek lehetővé teszik ugyanennek a konfigurációnak a Pound használatát. RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e
DocumentRoot /stb/báb/rack/puppetmasterd/public/ RackBaseURI / <Directory /etc/báb/rack/puppetmasterd/> Opciók Nincsenek AllowOverride None Végzés, megtagadás, végzés engedd meg mindenkitől </Directory> </VirtualHost>
Módosítsuk a bábmester konfigurációs fájlt a következő két sor hozzáadására: [root@puppetmaster ~]# vi /etc/puppet/puppet.conf [mester] ssl_client_header = SSL_CLIENT_S_DN ssl_client_verify_header = SSL_CLIENT_VERIFY
Módosítás /etc/sysconfig/puppetmaster: [root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster # A következő sort add a végére: PUPPETMASTER_EXTRA_OPTS="--jelentések áruház" Ha mind a művezetőnek, mind a bábirányítónak kell jelentenie, add hozzá a következő sort: PUPPETMASTER_EXTRA_OPTS="--jelentése az üzletről, művezetőről, puppet_dashboard"
Állítsd meg a bábmester szolgálatot, és indítsd el az apache szolgálatot: [root@puppetmaster ~]# /etc/init.d/Puppetmaster állj meg [root@puppetmaster ~]# /etc/init.d/httpd start
Boot nem indítja el a puppetmaster szolgáltatást, a boot elindítja az httpd szolgáltatást: [root@puppetmaster ~]# chkconfig --level 2345 puppetmaster ki [root@puppetmaster ~]# chkconfig --level 2345 httpd on
Győződj meg róla, hogy a 8140-es port be van kapcsolva: [root@puppetmaster ~]# netstat -tunlp |grep 8140 TCP 0 0 :::8140 :::* HALLGASD 9834/HTTPD
Teszteld az ügyféloldalon, hogy kinyomtatták-e a hibanapló: [root@puppetclient ~]# báb --teszt --nyom --hibakeresés |
Előző:A php-fpm.conf fontos paraméterek részletesen ismertethetőkKövetkező:2014. október 25-én (szombaton), 23:00-kor tesztelték a légvédelmi és katasztrófamegelőzési riasztót
|