Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 8686|Odpoveď: 0

Správa konfigurácie: Inštalácia a použitie bábok (1)

[Kopírovať odkaz]
Zverejnené 20. 10. 2014 9:47:45 | | |
1. Úvod do bábok

Systémoví administrátori sú často uviaznutí v sérii opakujúcich sa úloh: aktualizácia balíkov, správa konfiguračných súborov, systémové služby, cron úlohy, pridávanie nových konfigurácií, oprava chýb a podobne. Tieto úlohy sú často opakujúce sa a neefektívne, a prvou reakciou na ich riešenie je ich automatizácia, takže sa objavia vlastné skripty. Vzhľadom na zložitosť prostredia sa opakovane vyvíjajú vlastné skripty a aplikácie, ktoré je ťažké prispôsobiť viacerým platformám, a flexibilitu a funkčnosť je ťažké zaručiť, preto sa objavili automatizované nástroje na správu konfigurácie ako Puppet.

Vo svete open source je na výber mnoho konfiguračných nástrojov a niektoré z kľúčových produktov v tejto oblasti sú:

    Puppet (http://puppet.reductivelabs.com/): Nástroj na správu konfigurácie napísaný v Ruby, ktorý využíva architektúru C/S na konfiguráciu klienta v deklaratívnom jazyku.
    Cfengine (http://www.cfengine.org): Jeden z prvých open source konfiguračných nástrojov, vydaný v roku 1993, je tiež C/S architektúrou, zvyčajne používanou vo vzdelávacích inštitúciách.
    LCFG(http://www.lcfg.org/): Nástroj na správu konfigurácie pre C/S architektúry, ktorý používa XML na definovanie konfigurácií.
    Bcfg2: Nástroj na správu konfigurácie pre architektúru C/S napísaný v Pythone, ktorý používa špecifikácie a odpovede klientov na konfiguráciu cieľového hostiteľa.

Tento dokument je venovaný popisu, ako používať Puppet na správu vášho hostiteľa, aplikácií, programov na pozadí a rôznych služieb.

O Puppet:

1. Na čo sa Puppet používa?

Puppet je open-source nástroj na správu konfigurácie systému založený na Ruby, ktorý sa spolieha na architektúru nasadenia C/S. Hlavným vývojárom je Luke Kanies, ktorý používa licenciu na autorské práva GPLv2. Od roku 1997 sa Kanies podieľa na správe systému UNIX a vývoj Puppetu vychádzal z tejto skúsenosti. Keďže Kanies nebol spokojný s dostupnými konfiguračnými nástrojmi, začal v rokoch 2001 až 2005 vyvíjať nástroje v reduktívnom laboratóriu. Čoskoro Reductive Labs vydali svoj vlajkový produkt, Puppet.

2. Vlastnosti pupputu

Mnohé nástroje na správu konfigurácie systému fungujú veľmi podobne, napríklad cfengine. Čo robí Puppet jedinečným?

Syntax Puppetu vám umožňuje vytvoriť samostatný skript na vytvorenie používateľa na všetkých cieľových hostiteľoch. Všetky cieľové hostiteľky budú modul interpretovať a vykonávať postupne pomocou syntaxe použiteľnej pre lokálny systém. Napríklad, ak sa táto konfigurácia vykoná na serveri Red Hat, vytvorte používateľa pomocou príkazu useradd; Ak sa táto konfigurácia vykoná na FreeBSD hoste, použije sa príkaz adduser.

Ďalším pozoruhodným aspektom Puppetu je jeho flexibilita. Vzhľadom na povahu open source softvéru môžete voľne získať zdrojový kód Puppetu a ak narazíte na problémy a máte túto možnosť, môžete upraviť alebo vylepšiť kód Puppetu podľa svojho prostredia. Okrem toho komunitní vývojári a darcovia naďalej zvyšujú možnosti Puppetu. Veľká komunita vývojárov a používateľov sa tiež zaviazala poskytovať dokumentáciu a technickú podporu pre Puppet.

Puppet sa tiež ľahko škáluje. Podpora vlastných balíkov a konfigurácie špeciálneho systémového prostredia je možné rýchlo a jednoducho pridať do inštalátora Puppetu.

3. Pracovný režim bábky

Puppet je nástroj na správu konfigurácie architektúry C/S, ktorý inštaluje balík puppet-server (známy ako Puppet master) na centrálny server. Nainštalujte klientský softvér Puppet (nazývaný Puppet Client) na cieľovom hostiteľovi, ktorý je potrebné spravovať. Keď sa klient pripojí k Puppet masteru, konfiguračný súbor definovaný na Puppet mastere sa skompiluje a následne spustí na klientovi. V predvolenom nastavení každý klient komunikuje so serverom každú polhodinu, aby potvrdil aktualizáciu konfiguračných informácií. Ak sa objavia nové konfiguračné informácie alebo sa zmenia, konfigurácia sa znovu skompiluje a zverejní každému klientovi na vykonanie. Môžete tiež aktívne spustiť aktualizáciu konfiguračných informácií na serveri, aby ste prinútili každého klienta ich nakonfigurovať. Ak sa zmenia konfiguračné informácie klienta, môže získať pôvodnú konfiguráciu zo servera a opraviť ju.

Správa konfigurácie: Inštalácia a použitie bábok (1)


4. Budúcnosť Puppet

Nakoniec, Puppet je mladý nástroj, ktorý je stále vo vývoji. Komunita Puppet rýchlo rastie a neustále sa začleňuje mnoho nových nápadov, čo podnecuje vývoj, aktualizácie a prezentáciu modulov každý deň.

2. Konfigurácia a inštalácia (inštalácia Puppet 2.6.4 CentOS 5.4):

Nakonfigurujte repozitár na bábkovom serveri a klientovi:
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
Pridať k:
[epel-bábka]
Meno=Epel bábka
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
enabled=0
gpgcheck=0

Pridajte repozitár puppet.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[bábkové laboratórium]
meno=Balíky Puppet Labs
baseurl=http://yum.puppetlabs.com/base/
enabled=0
gpgcheck=0

Inštalácia majstra bábok:
[root@puppetmaster ~]# yum --enablerepo=epel,epel-puppet install puppet-server

Upravte hostiteľov a pridajte nasledujúce dva záznamy:
[root@puppetmaster ~]# vi /atď/hostitelia
192.168.0.10 puppetmaster.leju.com bábka
192.168.0.100 puppetclient.leju.com

Konfigurácia bábky:
[root@puppetmaster ~]# cd /etc/puppet/
[root@puppetmaster bábka] # vi bábka.conf

[hlavné]
    # Adresár bábokových denníkov.
    # Predvolená hodnota je '$vardir/log'.
    logdir = /var/log/puppet

    # Kde sa uchovávajú PID súbory bábky.
    # Predvolená hodnota je '$vardir/run'.
    rundir = /var/bež/bábka

    # Kde sa uchovávajú SSL certifikáty.
    # Predvolená hodnota je '$confdir/ssl'.
    SSLDir = $vardir/SSL

[agent]
    # Súbor, v ktorom puppetd uchováva zoznam tried
    # Spojené s obnovenou konfiguráciou.  Môže byť načítaný
    # samostatný spustiteľný súbor ''puppet'' pomocou ''--loadclass''
    # možnosť.
    # Predvolená hodnota je '$confdir/classes.txt'.
    Classfile = $vardir/classes.txt

    # Kde puppetd ukladá lokálnu konfiguráciu.  An
    prípona # označujúca formát cache sa automaticky pridáva.
    # Predvolená hodnota je '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    server = puppetmaster.leju.com
    report = pravda
    počúvať = pravda

[majster]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    autosign = pravda
    Správy = Uložiť
   
[root@puppetmaster puppet]# vi fileserver.conf
     [súbory]
    path /etc/puppet/files
    dovoliť *

[moduly]
    dovoliť *

[pluginy]
    dovoliť *

[root@puppetmaster bábka]# mkdir /etc/puppet/files
   
[root@puppetmaster bábka] # CD manifesty/
Vytvorte site.pp, čo je konfiguračný súbor pre vstup bábky:
[root@puppetmaster manifests]# vi site.pp
importovať "modules.pp"
import "roles.pp"
importovať "nodes.pp"

# Všeobecné nastavenia pre štandardné typy
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

filebucket { main: server => "puppetmaster.leju.com" }
Súbor { backup => main }

Vytvorte modules.pp na import modulov:
[root@puppetmaster manifests]# vi modules.pp
Import "test"

Vytvorte roles.pp na definovanie rolí servera:
[root@puppetmaster manifestuje]# vi roles.pp
Trieda základná trieda {
        include test
}

Vytvorte nodes.pp na konfiguráciu serverových uzlov:
[root@puppetmaster manifests]# vi nodes.pp
uzol 'basenode' {
        zahrnúť základnú triedu
}

Uzol 'puppetclient.leju.com' dedí Basenode {
        tag("test")
}

Uzol 'puppetmaster.leju.com' dedí Basenode {
        tag("test")
}

[root@puppetmaster manifestuje]# cd ..
[root@puppetmaster bábka]# moduly mkdir
Vytvorte testovací modul:
[root@puppetmaster moduly]# mkdir -p test/manifesty/
[root@puppetmaster moduly]# mkdir test/files/
[root@puppetmaster moduly]# cd test/súbory/
[root@puppetmaster súbory]# vi test.txt
Testovacia línia!
[root@puppetmaster súbory]# cd .. /manifestuje/
Vytvorte testovaciu triedu na doručenie súboru klientovi:
[root@puppetmaster manifestuje]# vi init.pp
Test triedy {
        súbor { "/tmp/test.txt":
                zabezpečiť => prítomný,
                grupa => "koreň",
                vlastník => "koreň",
                režim => "0644",
                zdroj => "puppet:///test/test.txt"
        }
}

Spustenie Puppet Mastera:
[root@puppetmaster manifestuje]# /etc/init.d/puppetmaster štart
Uisti sa, že port 8140 je zapnutý.

Inštalácia klienta bábok:
[root@puppetclient ~]# yum --enablerepo="epel,epel-puppet" inštalačná bábka

Upravte hostiteľov a pridajte nasledujúce dva záznamy:
[root@puppetclient ~]# vi /atď/hostitelia
192.168.0.10 puppetmaster.leju.com bábka
192.168.0.100 puppetclient.leju.com

Konfigurácia bábky:
[root@puppetclient ~]# cd /etc/puppet/
[root@puppetclient bábka] # vi puppet.conf
[hlavné]
    # Adresár bábokových denníkov.
    # Predvolená hodnota je '$vardir/log'.
    logdir = /var/log/puppet

    # Kde sa uchovávajú PID súbory bábky.
    # Predvolená hodnota je '$vardir/run'.
    rundir = /var/bež/bábka

    # Kde sa uchovávajú SSL certifikáty.
    # Predvolená hodnota je '$confdir/ssl'.
    SSLDir = $vardir/SSL

[agent]
    # Súbor, v ktorom puppetd uchováva zoznam tried
    # Spojené s obnovenou konfiguráciou.  Môže byť načítaný
    # samostatný spustiteľný súbor ''puppet'' pomocou ''--loadclass''
    # možnosť.
    # Predvolená hodnota je '$confdir/classes.txt'.
    Classfile = $vardir/classes.txt

    # Kde puppetd ukladá lokálnu konfiguráciu.  An
    prípona # označujúca formát cache sa automaticky pridáva.
    # Predvolená hodnota je '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    server = puppetmaster.leju.com
    report = pravda
    počúvať = pravda
   
[root@puppetclient puppet]# vi namespaceauth.conf
[puppetrunner]
    Dovoľte puppetmaster.leju.com
    povoliť *.leju.com
   
[root@puppetclient bábka]# vi auth.conf
Pridajte povoliť * na posledný riadok
......
Cesta /
auth any
dovoliť *

[root@puppetclient bábka] # CD
Vykonajte bábku:
[root@puppetclient ~]# Puppetd --noop --test --trace --debug
Ak Puppet Master nenastaví: autosign=true, musí sa vykonať v Puppet Master:
[root@puppetmaster ~]# certifikát bábky -l
puppetclient.leju.com
[root@puppetmaster ~]# certifikát bábky -s puppetclient.leju.com
Podpíš puppetclient.leju.com takto. Potom sa vráťte ku klientovi a vykonáte tu:
[root@puppetclient ~]# Puppetd --noop --test --trace --debug
Join --nie, konfigurácia sa na klientovi naozaj neaplikuje, hlavne sa používa na testovanie, aby sa zistilo, či nie sú chyby vo výtlačku, a spustenie bez chýb:
[root@puppetclient ~]# bábka --test --trace --debug

Zobraziť dokument:
[root@puppetclient ~]# ll /tmp/
spolu 8
-rw-r--r-- 1 koreňový koreň 11. februára 25. 22:35 test.txt
Dokument bol vydaný.

Je tiež možné tlačiť na Puppet Mastera:
[root@puppetmaster ~]# bábkový kop -d --moderátor puppetclient.leju.com
Spúšťanie puppetclient.leju.com
Získanie statusu
Status je úspech
puppetclient.leju.com skončil s výstupným kódom 0
Dokončené
Vrátenie 0 znamená, že bábka na klientovi bola úspešne spustená.

Nastavte bábku na automatický štart:
chkconfig --level 2345 bábka na

Upraviť puppetmastera tak, aby používal Passenger
Passenger je rozšírením Apache 2.x pre prevádzku Rails alebo Rack aplikácií v Apache. puppetmaster používa WEBrick na poskytovanie súborových služieb ako predvolený, ak máte veľa puppet klientov, výkon súborových služieb Puppetmastera bude slabý, aby bol Puppetmaster robustnejší, preto používajte Apache na poskytovanie súborových služieb.

Inštalácia:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Passenger 2.2.2 RHEL5 funguje bez problémov.
Pridať foreman.repozitár:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[majster]
meno=Foremanov stabilný repozitár
baseurl=http://yum.theforeman.org/stable
gpgcheck=0
enabled=1
[root@puppetmaster ~]# Mňam inštalácia rubygem-passenger-2.2.2-1
[root@puppetmaster ~]# rubygem-rack-1.0.1-1
[root@puppetmaster ~]# passenger-install-apache2-module

Inštalácia SSL modulu Apache:
[root@puppetmaster ~]# Mňam, inštaluj mod_ssl

Na konfiguráciu aplikácie 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
PassengerMaxPoolVeľkosť 30
Čas pasažierPoolIdleTime 1500
PassengerMaxRequests 1000
Rýchlosť plynu 120
RackAutoDetect vypnutý
RailsAutoDetect vypnutý

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# Pravdepodobne by si mal doladiť tieto nastavenia
PassengerHighPerformance na
PassengerMaxPoolVeľkosť 12
Čas pasažierPoolIdleTime 1500
# PassengerMaxPožiadavky 1000
Rýchlosť plynu 120
RackAutoDetect vypnutý
RailsAutoDetect vypnutý

Počúvaj 8140

<VirtualHost *:8140>
        SSLEngine on
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite VŠETCI:! 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
        # Ak sa Apache sťažuje na neplatné podpisy v CRL, môžete skúsiť vypnúť
        # CRL kontroluje komentárom na ďalší riadok, ale toto sa neodporúča.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient voliteľné
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # Nasledujúce klientské hlavičky umožňujú rovnakú konfiguráciu pracovať s Poundom.
        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 /atď/puppet/rack/puppetmasterd/public/
        RackBaseURI /
        <Adresár /atď/puppet/rack/puppetmasterd/>
                Možnosti Žiadne
                AllowOverride None
                Príkaz povoliť, zamietnuť
                dovoliť od všetkých
        </Directory>
</VirtualHost>

Upravte konfiguračný súbor puppetmastera tak, aby ste pridali nasledujúce dva riadky:
[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[majster]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
Upraviť /etc/sysconfig/puppetmaster:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# Pridajte nasledujúci riadok na koniec:
PUPPETMASTER_EXTRA_OPTS="--hlási úložisko"
Ak potrebujete podávať správy majstrom aj puppet-dashboardu, pridajte nasledujúci riadok:
PUPPETMASTER_EXTRA_OPTS="--hlási sklad, majster puppet_dashboard"

Zastavte službu bábkového majstra a začnite službu Apache:
[root@puppetmaster ~]# /etc/init.d/puppetmaster stop
[root@puppetmaster ~]# /etc/init.d/httpd začiatok

Boot nespustí službu puppetmaster, boot spúšťa httpd službu:
[root@puppetmaster ~]# chkconfig --level 2345 puppetmaster vypnutý
[root@puppetmaster ~]# chkconfig --level 2345 httpd on

Uisti sa, že port 8140 je zapnutý:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
tcp 0 0 :::8140 :::* POČÚVAJTE 9834/httpd

Otestujte na strane klienta, či sa vytlačí záznam chýb:
[root@puppetclient ~]# bábka --test --trace --debug




Predchádzajúci:php-fpm.conf Dôležité parametre sú podrobne vysvetlené
Budúci:Dňa 25. októbra 2014 (sobota) o 16:00 bol testovaný poplach protivzdušnej obrany a prevencie katastrof
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com