Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 8686|Válasz: 0

Konfigurációkezelés: Báb telepítése és használata (1)

[Linket másol]
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ők
Következő:2014. október 25-én (szombaton), 23:00-kor tesztelték a légvédelmi és katasztrófamegelőzési riasztót
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com