Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 8686|Odpověď: 0

Správa konfigurace: Instalace a použití loutek (1)

[Kopírovat odkaz]
Zveřejněno 20.10.2014 9:47:45 | | |
1. Úvod do loutky

Správci systémů často uvíznou v řadě opakujících se úkolů: aktualizaci balíčků, správu konfiguračních souborů, systémové služby, cron úkoly, přidávání nových konfigurací, opravy chyb atd. Tyto úkoly jsou často opakující se a neefektivní a první reakcí na jejich řešení je jejich automatizace, takže se objeví vlastní skripty. Kvůli složitosti prostředí jsou vlastní skripty a aplikace opakovaně vyvíjeny a obtížně se přizpůsobují více platformám, a flexibilita a funkčnost je obtížně zaručena, proto vznikly automatizované nástroje pro správu konfigurací jako Puppet.

Ve světě open source je k dispozici mnoho konfiguračních nástrojů a mezi klíčové produkty v této oblasti patří:

    Puppet (http://puppet.reductivelabs.com/): Nástroj pro správu konfigurace napsaný v Ruby, který využívá architekturu C/S ke konfiguraci klienta v deklarativním jazyce.
    Cfengine (http://www.cfengine.org): Jeden z prvních open source konfiguračních nástrojů, vydaný v roce 1993, je také C/S architekturou, obvykle používanou ve vzdělávacích institucích.
    LCFG(http://www.lcfg.org/): Nástroj pro správu konfigurace pro C/S architektury, který používá XML k definování konfigurací.
    Bcfg2: Nástroj pro správu konfigurace pro architekturu C/S napsaný v Pythonu, který využívá specifikace a odpovědi klienta ke konfiguraci cílového hostitele.

Tento dokument je věnován popisu, jak používat Puppet ke správě vašeho hostitele, aplikací, programů na pozadí a různých služeb.

O Puppet:

1. K čemu se loutka používá?

Puppet je open-source nástroj pro správu konfigurace systému založený na Ruby, který spoléhá na architekturu nasazení C/S. Hlavním vývojářem je Luke Kanies, který se řídí licencí GPLv2. Od roku 1997 se Kanies podílí na správě systému UNIX a vývoj Puppetu vycházel z této zkušenosti. Nespokojený s dostupnými konfiguračními nástroji, Kanies začal vyvíjet nástroje v reduktivní laboratoři mezi lety 2001 a 2005. Brzy poté Reductive Labs uvedla na trh svůj vlajkový produkt Puppet.

2. Vlastnosti pupputu

Mnoho nástrojů pro správu konfigurace systému funguje velmi podobně, například cfengine. Co dělá Puppet jedinečným?

Syntax Puppetu umožňuje vytvořit samostatný skript pro vytvoření uživatele na všech vašich cílových hostitelích. Všechny cílové hostitele modul interpretují a spouštějí postupně podle syntaxe aplikující na lokální systém. Například pokud je tato konfigurace vykonána na serveru Red Hat, vytvořte uživatele pomocí příkazu useradd; Pokud je tato konfigurace vykonána na FreeBSD hostiteli, použije se příkaz adduser.

Dalším pozoruhodným aspektem Puppet je jeho flexibilita. Díky povaze open source softwaru můžete zdrojový kód Puppetu volně získat a pokud narazíte na problémy a máte tu možnost, můžete kód Puppetu upravit nebo vylepšit tak, aby vyhovoval vašemu prostředí. Kromě toho vývojáři komunity a dárci nadále zlepšují možnosti Puppet. Velká komunita vývojářů a uživatelů se také zavázala poskytovat dokumentaci a technickou podporu pro Puppet.

Loutka je také snadno zvládatelná. Podpora vlastních balíčků a konfigurace speciálních systémových prostředí lze rychle a snadno přidat do instalátoru Puppet.

3. Pracovní režim loutky

Puppet je nástroj pro správu konfigurace architektury C/S, který instaluje balíček puppet-server (známý jako Puppet master) na centrální server. Nainstalujte klientský software Puppet (nazývaný Puppet Client) na cílový hostitel, který je potřeba spravovat. Když se klient připojí k Puppet masteru, konfigurační soubor definovaný na Puppet masteru je zkompilován a poté spuštěn na klientovi. Ve výchozím nastavení každý klient komunikuje se serverem každou půlhodinu, aby potvrdil aktualizaci konfiguračních informací. Pokud jsou nové konfigurační informace nebo se konfigurační informace změnily, konfigurace bude znovu zkompilována a zveřejněna každému klientovi k vykonání. Můžete také aktivně spustit aktualizaci konfiguračních informací na serveru, abyste donutili každého klienta je nastavit. Pokud jsou konfigurační informace klienta změněny, může získat původní konfiguraci od serveru a opravit ji.

Správa konfigurace: Instalace a použití loutek (1)


4. Budoucnost Puppet

Nakonec je Puppet mladý nástroj, který je stále ve vývoji. Komunita Puppet rychle roste a neustále se začleňuje mnoho nových nápadů, což vede k vývoji, aktualizacím a prezentaci modulů každý den.

2. Konfigurace a instalace (instalace Puppet 2.6.4 CentOS 5.4):

Nakonfigurujte repozitář na loutkovém serveru a klientovi:
otáčky -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
Přidat do:
[epel-loutka]
jméno=epel loutka
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
enabled=0
gpgcheck=0

Přidejte repozitář puppet.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[loutkové laboratoře]
název=Balíčky Puppet Labs
baseurl=http://yum.puppetlabs.com/base/
enabled=0
gpgcheck=0

Instalace loutkáře:
[root@puppetmaster ~]# yum --enablerepo=epel,epel-puppet install puppet-server

Upravte hostitele a přidejte následující dva záznamy:
[root@puppetmaster ~]# vi /etc/hostitelé
192.168.0.10 puppetmaster.leju.com loutka
192.168.0.100 puppetclient.leju.com

Konfigurace loutky:
[root@puppetmaster ~]# cd /etc/puppet/
[root@puppetmaster loutka] # vi loutka.conf

[hlavní]
    # Adresář loutek.
    # Výchozí hodnota je '$vardir/log'.
    logdir = /var/log/puppet

    # Kde jsou uloženy PID soubory loutky.
    # Výchozí hodnota je '$vardir/run'.
    rundir = /var/běh/loutka

    # Kde jsou uchovávány SSL certifikáty.
    # Výchozí hodnota je '$confdir/ssl'.
    SSLDir = $vardir/SSL

[agent]
    # Soubor, ve kterém loutka ukládá seznam tříd
    # spojeno s získanou konfigurací.  Lze načíst
    # samostatný spustitelný soubor "puppet" pomocí tříd "---loadclass"
    # možnost.
    # Výchozí hodnota je '$confdir/classes.txt'.
    Classfile = $vardir/classes.txt

    # Kde loutka ukládá lokální konfiguraci.  An
    přípona # označující formát cache je automaticky přidán.
    # Výchozí hodnota je '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    server = puppetmaster.leju.com
    report = pravda
    poslouchej = pravda

[mistr]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    autosign = pravda
    Zprávy = Uložit
   
[root@puppetmaster puppet]# vi fileserver.conf
     [soubory]
    path /etc/puppet/files
    povolit *

[moduly]
    povolit *

[pluginy]
    povolit *

[root@puppetmaster loutka]# mkdir /etc/puppet/files
   
[root@puppetmaster loutka] # CD manifesty/
Vytvořte site.pp, což je konfigurační soubor pro loutkové záznamy:
[root@puppetmaster manifesty]# vi site.pp
import "modules.pp"
importovat "roles.pp"
importovat "nodes.pp"

# Obecná nastavení pro standardní typy
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

filebucket { main: server => "puppetmaster.leju.com" }
File { backup => main }

Vytvořte modules.pp pro import modulů:
[root@puppetmaster manifests]# vi modules.pp
Import "test"

Vytvořte roles.pp pro definování rolí serveru:
[root@puppetmaster manifestuje]# vi roles.pp
Třída základní třída {
        Include test
}

Vytvořte nodes.pp pro konfiguraci serverových uzlů:
[root@puppetmaster manifests]# vi nodes.pp
uzel 'basenode' {
        zahrnout základní třídu
}

Uzel 'puppetclient.leju.com' dědí Basenode {
        tag("test")
}

Uzel 'puppetmaster.leju.com' dědí Basenode {
        tag("test")
}

[root@puppetmaster se projevuje]# cd ..
[root@puppetmaster puppet]# mkdir moduly
Vytvořte testovací modul:
[root@puppetmaster moduly]# mkdir -p test/manifesty/
[root@puppetmaster modules]# mkdir test/files/
[root@puppetmaster moduly]# cd test/soubory/
[root@puppetmaster soubory]# vi test.txt
Testovací linka!
[root@puppetmaster soubory]# cd .. /manifestuje/
Vytvořte testovací třídu pro doručení souboru klientovi:
[root@puppetmaster manifestuje]# vi init.pp
Test třídy {
        soubor { "/tmp/test.txt":
                zajistit => přítomný,
                grupa => "kořen",
                vlastník => "kořen",
                mód => "0644",
                zdroj => "puppet:///test/test.txt"
        }
}

Spuštění Puppet Mastera:
[root@puppetmaster manifestuje]# /etc/init.d/puppetmaster start
Ujisti se, že port 8140 je zapnutý.

Instalace klienta loutky:
[root@puppetclient ~]# yum --enablerepo="epel,epel-puppet" install puppet

Upravte hostitele a přidejte následující dva záznamy:
[root@puppetclient ~]# vi /etc/hostitelé
192.168.0.10 puppetmaster.leju.com loutka
192.168.0.100 puppetclient.leju.com

Konfigurace loutky:
[root@puppetclient ~]# cd /etc/puppet/
[root@puppetclient loutka] # vi loutka.conf
[hlavní]
    # Adresář loutek.
    # Výchozí hodnota je '$vardir/log'.
    logdir = /var/log/puppet

    # Kde jsou uloženy PID soubory loutky.
    # Výchozí hodnota je '$vardir/run'.
    rundir = /var/běh/loutka

    # Kde jsou uchovávány SSL certifikáty.
    # Výchozí hodnota je '$confdir/ssl'.
    SSLDir = $vardir/SSL

[agent]
    # Soubor, ve kterém loutka ukládá seznam tříd
    # spojeno s získanou konfigurací.  Lze načíst
    # samostatný spustitelný soubor "puppet" pomocí tříd "---loadclass"
    # možnost.
    # Výchozí hodnota je '$confdir/classes.txt'.
    Classfile = $vardir/classes.txt

    # Kde loutka ukládá lokální konfiguraci.  An
    přípona # označující formát cache je automaticky přidán.
    # Výchozí hodnota je '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    server = puppetmaster.leju.com
    report = pravda
    poslouchej = pravda
   
[root@puppetclient puppet]# vi namespaceauth.conf
[loutkový lovec]
    dovolte puppetmaster.leju.com
    povolit *.leju.com
   
[root@puppetclient loutka] # vi auth.conf
Přidejte povolit * na poslední řádek
......
Cesta /
auth any
povolit *

[root@puppetclient loutka] # CD
Exekuce loutku:
[root@puppetclient ~]# loutka --noop --test --trace --debug
Pokud Puppet Master nenastaví: autosign=true, musí být proveden v Puppet Masteru:
[root@puppetmaster ~]# loutkový certifikát -l
puppetclient.leju.com
[root@puppetmaster ~]# certifikát loutky -s puppetclient.leju.com
Podepiš puppetclient.leju.com takto. Pak se vraťte ke klientovi a provedte to zde:
[root@puppetclient ~]# loutka --noop --test --trace --debug
Join – ne, konfigurace se na klientovi opravdu neaplikuje, hlavně se používá k testování, aby se zjistily, zda nejsou chyby ve výpisu, a spustil se bez chyb:
[root@puppetclient ~]# loutka --test --trace --debug

Zobrazit dokument:
[root@puppetclient ~]# ll /tmp/
celkem 8
-rw-r--r-- 1 kořen 11 25. února 22:35 test.txt
Dokument byl vydán.

Je také možné tlačit na Puppet Mastera:
[root@puppetmaster ~]# loutka kop -d --moderátor puppetclient.leju.com
Spouštěcí puppetclient.leju.com
Získání statusu
Status je úspěch
puppetclient.leju.com skončil s výstupním kódem 0
Dokončeno
Vrácení 0 znamená, že loutka na klientovi byla úspěšně spuštěna.

Nastavte loutku na automatický start:
chkconfig --level 2345 puppet on

Upravit Puppetmastera tak, aby používal Passenger
Passenger je rozšířením Apache 2.x pro provoz aplikací Rails nebo Rack v Apache. puppetmaster používá WEBrick k poskytování souborových služeb ve výchozím nastavení, pokud máte mnoho klientů puppet, výkon souborové služby Puppetmastera bude špatný, aby byl Puppetmaster robustnější, proto používejte Apache pro poskytování souborových služeb.

Instalace:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Passenger 2.2.2 RHEL5 funguje bez problémů.
Přidat foreman.repo repozitář:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[mistr]
jméno=Předák repozitáře stabilní
baseurl=http://yum.theforeman.org/stable
gpgcheck=0
povoleno=1
[root@puppetmaster ~]# Mňam instalace rubygem-passenger-2.2.2-1
[root@puppetmaster ~]# rubygem-rack-1.0.1-1
[root@puppetmaster ~]# passenger-install-apache2-module

Instalace SSL modulu Apache:
[root@puppetmaster ~]# Mňam, instaluj mod_ssl

Pro konfiguraci aplikace Puppet rack:
mkdir -p /etc/puppet/rack/puppetmasterd/
mkdir /etc/puppet/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
PassengerRuby /usr/bin/ruby
PassengerMaxPoolVelikost 30
Čas na klid cestujících 1500
PassengerMaxRequests 1000
PassengerStatThrottleRate 120
RackAutoDetect vypnuto
RailsAutoDetect vypnuto

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# Asi bys měl tyto nastavení ladit
PassengerHighPerformance na
PassengerMaxPoolVelikost 12
Čas na klid cestujících 1500
# PassengerMaxRequests 1000
PassengerStatThrottleRate 120
RackAutoDetect vypnuto
RailsAutoDetect vypnuto

Poslouchejte 8140

<VirtualHost *:8140>
        SSLEngine na
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite VŠICHNI :! 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
        # Pokud si Apache stěžuje na neplatné podpisy v CRL, můžete zkusit deaktivovat
        # CRL kontroluje komentářem k dalšímu řádku, ale to se nedoporučuje.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient volitelné
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # Následující klientské hlavičky umožňují stejnou konfiguraci pracovat s Poundem.
        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 /etc/puppet/rack/puppetmasterd/public/
        RackBaseURI /
        <Adresář /etc/puppet/rack/puppetmasterd/>
                Možnosti Žádné
                Povolit, přepsat žádné
                Rozkaz povolit, zamítnout
                povolit od všech
        </Directory>
</VirtualHost>

Upravte konfigurační soubor puppetmastera a přidejte následující dva řádky:
[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[mistr]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
Upravit /etc/sysconfig/puppetmaster:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# Přidejte následující řádek na konec:
PUPPETMASTER_EXTRA_OPTS="--hlásí obchod"
Pokud potřebujete podávat zprávy jak mistrovi, tak puppet-dashboardu, přidejte následující řádek:
PUPPETMASTER_EXTRA_OPTS="--hlásí sklad, mistr, puppet_dashboard"

Ukončit službu loutkáře a spustit službu Apache:
[root@puppetmaster ~]# /etc/init.d/puppetmaster stop
[root@puppetmaster ~]# /etc/init.d/httpd start

Boot nespustí službu puppetmaster, boot spustí httpd službu:
[root@puppetmaster ~]# chkconfig --level 2345 puppetmaster vypnuto
[root@puppetmaster ~]# chkconfig --level 2345 httpd on

Ujistěte se, že je port 8140 zapnutý:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
tcp 0 0 :::8140 :::* POSLOUCHEJTE 9834/httpd

Otestujte na straně klienta, zda se chybový log vytiskne:
[root@puppetclient ~]# loutka --test --trace --debug




Předchozí:php-fpm.conf jsou podrobně vysvětleny důležité parametry
Další:Dne 25. října 2014 (sobota) v 16:00 byl testován poplach protivzdušné obrany a prevence katastrof
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com