Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 8686|Odgovoriti: 0

Upravljanje konfiguracije: Namestitev in uporaba lutk (1)

[Kopiraj povezavo]
Objavljeno na 20. 10. 2014 09:47:45 | | |
1. Uvod v lutke

Sistemski administratorji so pogosto ujeti v vrsto ponavljajočih se nalog: nadgradnja paketov, upravljanje konfiguracijskih datotek, sistemske storitve, cron naloge, dodajanje novih konfiguracij, popravljanje napak itd. Te naloge so pogosto ponavljajoče in neučinkovite, zato je prvi odziv na njihovo avtomatizacijo, zato se pojavijo prilagojeni skripti. Zaradi kompleksnosti okolja se prilagojene skripte in aplikacije večkrat razvijajo in jih je težko prilagoditi več platformam, fleksibilnost in funkcionalnost pa je težko zagotoviti, zato so se pojavila avtomatizirana orodja za upravljanje konfiguracij, kot je Puppet.

V odprtokodnem svetu je na voljo veliko orodij za konfiguracijo, nekateri ključni izdelki na tem področju pa so:

    Puppet (http://puppet.reductivelabs.com/): Orodje za upravljanje konfiguracije, napisano v Rubyju, ki uporablja arhitekturo C/S za konfiguracijo odjemalca v deklarativnem jeziku.
    Cfengine (http://www.cfengine.org): Eno prvih odprtokodnih orodij za konfiguracijo, izdano leta 1993, je tudi C/S arhitektura, običajno uporabljena v izobraževalnih ustanovah.
    LCFG(http://www.lcfg.org/): Orodje za upravljanje konfiguracij za C/S arhitekture, ki uporablja XML za definiranje konfiguracij.
    Bcfg2: Orodje za upravljanje konfiguracije za arhitekturo C/S, napisano v Pythonu, ki uporablja specifikacije in odzive odjemalcev za konfiguracijo ciljnega gostitelja.

Ta dokument je namenjen opisu, kako uporabljati Puppet za upravljanje vašega gostitelja, aplikacij, programov v ozadju in različnih storitev.

O Puppetu:

1. Za kaj se uporablja Puppet?

Puppet je odprtokodno orodje za upravljanje konfiguracije sistemov, ki temelji na Rubyju in temelji na arhitekturi nameščanja C/S. Glavni razvijalec je Luke Kanies, ki sledi avtorskim pravicam GPLv2. Od leta 1997 je Kanies vključen v upravljanje UNIX sistemov, razvoj Puppeta pa je izhajal iz teh izkušenj. Ker ni bil zadovoljen z razpoložljivimi konfiguracijskimi orodji, je Kanies med letoma 2001 in 2005 začel razvijati orodja v reduktivnem laboratoriju. Kmalu je Reductive Labs izdal svoj vodilni izdelek, Puppet.

2. Značilnosti pupputa

Veliko orodij za upravljanje konfiguracije sistema deluje zelo podobno, kot je cfengine. Kaj naredi Puppet edinstvenega?

Puppetova sintaksa vam omogoča, da ustvarite ločen skript za gradnjo uporabnika na vseh ciljnih gostiteljih. Vsi ciljni gostitelji bodo modul interpretirali in izvajali zaporedoma z uporabo sintakse, ki velja za lokalni sistem. Na primer, če se ta konfiguracija izvede na strežniku Red Hat, ustvarite uporabnika z ukazom useradd; Če se ta konfiguracija izvede na FreeBSD gostitelju, se uporabi ukaz adduser.

Še ena izjemna lastnost Puppeta je njegova prilagodljivost. Zaradi narave odprtokodne programske opreme lahko prosto pridobite izvorno kodo Puppeta, in če naletite na težave in imate možnost, lahko kodo Puppeta prilagodite ali izboljšate glede na svoje okolje. Poleg tega razvijalci skupnosti in donatorji še naprej izboljšujejo zmogljivosti Puppeta. Velika skupnost razvijalcev in uporabnikov je prav tako zavezana zagotavljanju dokumentacije in tehnične podpore za Puppet.

Lutka je prav tako enostavna za razraščanje. Podporo za prilagojene pakete in posebne konfiguracije sistemskih okolij je mogoče hitro in enostavno dodati v namestitveni program Puppet.

3. Način delovanja lutke

Puppet je orodje za upravljanje konfiguracije arhitekture C/S, ki namesti paket puppet-server (znan kot Puppet master) na osrednji strežnik. Namestite programsko opremo Puppet odjemalca (imenovano Puppet Client) na ciljni gostitelj, ki ga je treba upravljati. Ko se odjemalec poveže z Puppet masterjem, se konfiguracijska datoteka, definirana na Puppet masterju, prevede in nato zažene na odjemalcu. Privzeto vsak odjemalec komunicira s strežnikom vsakih pol ure, da potrdi posodobitev konfiguracijskih informacij. Če so nove konfiguracijske informacije ali so se konfiguracijske informacije spremenile, se konfiguracija ponovno prevede in objavi vsakemu odjemalcu za izvajanje. Lahko tudi aktivno sprožite posodobitev konfiguracijskih informacij na strežniku, da prisilite vsakega odjemalca, da ga konfigurira. Če se konfiguracijske informacije odjemalca spremenijo, lahko od strežnika pridobi izvirno konfiguracijo, da jo popravi.

Upravljanje konfiguracije: Namestitev in uporaba lutk (1)


4. Prihodnost Puppet

Nazadnje, Puppet je mlado orodje, ki je še vedno v razvoju in razvoju. Puppet skupnost hitro raste, številne nove ideje pa se nenehno vključujejo, kar spodbuja razvoj, posodobitve in vsakodnevne predstavitve modulov.

2. Konfiguracija in namestitev (Puppet 2.6.4 CentOS 5.4 namestitev):

Konfigurirajte repozitorij na lutkovnem strežniku in odjemalcu:
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
Dodajte k:
[epel-lutka]
ime=epel lutka
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
omogočeno=0
gpgcheck=0

Dodajte repozitorij puppet.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[lutkovne laboratorije]
ime=Paketi Puppet Labs
baseurl=http://yum.puppetlabs.com/base/
omogočeno=0
gpgcheck=0

Namestitev lutkarskega mojstra:
[root@puppetmaster ~]# yum --enablerepo=epel,epel-puppet install puppet-server

Spremenite gostitelje in dodajte naslednja dva zapisa:
[root@puppetmaster ~]# vi /itd/gostitelji
192.168.0.10 puppetmaster.leju.com lutka
192.168.0.100 puppetclient.leju.com

Konfiguracija lutke:
[root@puppetmaster ~]# cd /itd/lutka/
[root@puppetmaster lutka]# vi lutka.conf

[glavno]
    # Imenik dnevnikov lutk.
    # Privzeta vrednost je '$vardir/log'.
    logdir = /var/log/puppet

    # Kjer hranijo PID datoteke Puppet.
    # Privzeta vrednost je '$vardir/run'.
    rundir = /var/teči/lutka

    # Kjer se hranijo SSL certifikati.
    # Privzeta vrednost je '$confdir/ssl'.
    ssldir = $vardir/SSL

[agent]
    # Datoteka, v katero lutka shranjuje seznam razredov
    # povezano z pridobljeno konfiguracijo.  Lahko se naloži v
    # ločena izvršljiva datoteka ''lutka'' z uporabo ''--loadclass''
    # možnosti.
    # Privzeta vrednost je '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Kjer lutka predpomni lokalno konfiguracijo.  An
    # razširitev, ki označuje format predpomnilnika, se samodejno doda.
    # Privzeta vrednost je '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    strežnik = puppetmaster.leju.com
    poročilo = resnično
    poslušaj = res

[mojster]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    autosign = resnično
    Poročila = Shramba
   
[root@puppetmaster puppet]# vi fileserver.conf
     [datoteke]
    pot /etc/puppet/files
    dovoli *

[moduli]
    dovoli *

[vtičniki]
    dovoli *

[root@puppetmaster lutka]# mkdir /itd/lutka/datoteke
   
[root@puppetmaster lutka]# CD manifestacije/
Ustvarite site.pp, ki je konfiguracijska datoteka za vnos lutk:
[root@puppetmaster manifests]# vi site.pp
uvoz "modules.pp"
uvoz "roles.pp"
uvoz "nodes.pp"

# Splošne nastavitve za standardne tipe
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

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

Ustvari modules.pp za uvoz modulov:
[root@puppetmaster manifests]# vi modules.pp
Uvozni "test"

Ustvarite roles.pp za definiranje vlog strežnikov:
[root@puppetmaster manifestira]# vi vloge.pp
Razredni osnovni razred {
        Include test
}

Ustvarite nodes.pp za konfiguracijo strežniških vozlišč:
[root@puppetmaster manifests]# vi nodes.pp
Vozlišče 'Basenode' {
        vključujejo osnovni razred
}

Vozlišče 'puppetclient.leju.com' podeduje Basenode {
        oznaka ("test")
}

Vozlišče 'puppetmaster.leju.com' podeduje Basenode {
        oznaka ("test")
}

[root@puppetmaster manifestira]# cd ..
[root@puppetmaster lutka]# mkdir moduli
Ustvarite testni modul:
[root@puppetmaster moduli]# mkdir -p test/manifesti/
[root@puppetmaster moduli]# mkdir test/files/
[root@puppetmaster moduli]# CD test/datoteke/
[root@puppetmaster datoteke]# vi test.txt
Testna linija!
[root@puppetmaster datoteke]# cd .. /manifesti/
Ustvarite testni razred za dostavo datoteke odjemalcu:
[root@puppetmaster manifestira]# vi init.pp
Test razreda {
        File { "/tmp/test.txt":
                ensure => prisoten,
                grupa => "koren",
                lastnik => "korenina",
                način => "0644",
                vir => "puppet:///test/test.txt"
        }
}

Lansiranje Puppet Masterja:
[root@puppetmaster manifestira]# /etc/init.d/puppetmaster začetek
Prepričaj se, da je port 8140 vklopljen.

Namestitev lutkovnega odjemalca:
[root@puppetclient ~]# yum --enablerepo="epel,epel-puppet" namesti lutko

Spremenite gostitelje in dodajte naslednja dva zapisa:
[root@puppetclient ~]# vi /itd/gostitelji
192.168.0.10 puppetmaster.leju.com lutka
192.168.0.100 puppetclient.leju.com

Nastavitev lutke:
[root@puppetclient ~]# cd /itd/lutka/
[root@puppetclient lutka]# vi lutka.conf
[glavno]
    # Imenik dnevnikov lutk.
    # Privzeta vrednost je '$vardir/log'.
    logdir = /var/log/puppet

    # Kjer hranijo PID datoteke Puppet.
    # Privzeta vrednost je '$vardir/run'.
    rundir = /var/teči/lutka

    # Kjer se hranijo SSL certifikati.
    # Privzeta vrednost je '$confdir/ssl'.
    ssldir = $vardir/SSL

[agent]
    # Datoteka, v katero lutka shranjuje seznam razredov
    # povezano z pridobljeno konfiguracijo.  Lahko se naloži v
    # ločena izvršljiva datoteka ''lutka'' z uporabo ''--loadclass''
    # možnosti.
    # Privzeta vrednost je '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Kjer lutka predpomni lokalno konfiguracijo.  An
    # razširitev, ki označuje format predpomnilnika, se samodejno doda.
    # Privzeta vrednost je '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    strežnik = puppetmaster.leju.com
    poročilo = resnično
    poslušaj = res
   
[root@puppetclient lutka]# vi namespaceauth.conf
[lutkarski tekač]
    Dovoli puppetmaster.leju.com
    dovoli *.leju.com
   
[root@puppetclient lutka]# vi auth.conf
Dodaj dovoli * na zadnjo vrstico
......
pot /
avtentikacija katerokoli
dovoli *

[root@puppetclient lutka]# CD
Izvedite lutko:
[root@puppetclient ~]# lutka --noop --test --sledi --debug
Če Puppet Master ne nastavi: autosign=true, ga je treba izvesti v Puppet Master:
[root@puppetmaster ~]# lutkovni certifikat -l
puppetclient.leju.com
[root@puppetmaster ~]# lutkovni certifikat -s puppetclient.leju.com
Podpiši puppetclient.leju.com tako. Nato se vrnite k odjemalcu in izvedete tukaj:
[root@puppetclient ~]# lutka --noop --test --sledi --debug
Join --ne, konfiguracija se v resnici ne bo uporabljala na odjemalcu, večinoma se uporablja za testiranje, da se preveri, ali so v izpisu kakšne napake, in izvajanje brez napak:
[root@puppetclient ~]# Puppetd --test --sledi --debug

Oglejte si dokument:
[root@puppetclient ~]# ll /tmp/
skupaj 8
-rw-r--r-- 1 koren 11 Feb 25 22:35 test.txt
Dokument je bil izdan.

Možno je tudi potisniti na Puppet Masterja:
[root@puppetmaster ~]# Puppet Kick -D --gostitelj puppetclient.leju.com
Sprožilni puppetclient.leju.com
Pridobivanje statusa
Status je uspeh
puppetclient.leju.com končal z izhodno kodo 0
Končano
Vrnitve 0 pomenijo, da je bila lutka na odjemalcu uspešno sprožena.

Nastavite lutko na samodejni zagon:
chkconfig --level 2345 lutka na

Prilagodite Puppetmasterja za uporabo Passenger
Passenger je razširitev Apache 2.x za upravljanje Rails ali Rack aplikacij v Apache. puppetmaster privzeto uporablja WEBrick za zagotavljanje datotečnih storitev; če imate veliko lutkastih odjemalcev, bo zmogljivost datotečnih storitev Puppetmasterja slaba, da bi bil Puppetmaster bolj robusten, zato uporabite Apache za zagotavljanje datotečnih storitev.

Namestitev:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Passenger 2.2.2 RHEL5 deluje brez težav.
Dodaj foreman.repozitorij:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[nadzornik]
ime=Foremanov stabilni repozitorij
baseurl=http://yum.theforeman.org/stable
gpgcheck=0
omogočeno=1
[root@puppetmaster ~]# Mmm, namesti rubygem-passenger-2.2.2-1
[root@puppetmaster ~]# rubygem-rack-1.0.1-1
[root@puppetmaster ~]# passenger-install-apache2-module

Namestitev Apache SSL modula:
[root@puppetmaster ~]# Mmm, namesti mod_ssl

Za konfiguracijo aplikacije Puppet rack:
mkdir -p /etc/puppet/rack/puppetmasterd/
mkdir /etc/puppet/rack/puppetmasterd/public /itd/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 /itd/puppet/rack/puppetmasterd/
chown puppet /itd/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
PassengerMaxVelikost bazena 30
Čas za praznjenje potnikov 1500
PassengerMaxRequests 1000
PotniškaHitrostPlina 120
RackAutoDetect izklopljen
RailsAutoDetect izklopljen

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# Verjetno želiš nastaviti te nastavitve
PassengerHighPerformance na
PassengerMaxPoolVelikost 12
Čas za praznjenje potnikov 1500
# PassengerMaxRequests 1000
PotniškaHitrostPlina 120
RackAutoDetect izklopljen
RailsAutoDetect izklopljen

Poslušaj 8140

<VirtualHost *:8140>
        SSLEngine on
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite VSI:! 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
        # Če se Apache pritožuje zaradi neveljavnih podpisov na CRL, lahko poskusite onemogočiti
        # CRL preverjanje s komentarjem naslednje vrstice, vendar to ni priporočljivo.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient neobvezno
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # Naslednje glave odjemalcev omogočajo enako konfiguracijo za delovanje s Pound.
        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 /itd/puppet/rack/puppetmasterd/public/
        RackBaseURI /
        <Imenik /itd/lutka/stojalo/lutkar/>
                Možnosti Ni
                AllowOverride None
                Ukaz dovoli, zavrni
                dovoli od vseh
        </Directory>
</VirtualHost>

Spremenite konfiguracijsko datoteko puppetmasterja in dodajte naslednji dve vrstici:
[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[mojster]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
Spremeni /etc/sysconfig/puppetmaster:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# Na konec dodajte naslednjo vrstico:
PUPPETMASTER_EXTRA_OPTS="--poroča v trgovini"
Če morate poročati tako nadzorniku kot lutki nadzorni plošči, dodajte naslednjo vrstico:
PUPPETMASTER_EXTRA_OPTS="--poroča skladišče, nadzornik, puppet_dashboard"

Ustavite storitev lutkarja in začnite storitev Apache:
[root@puppetmaster ~]# /etc/init.d/puppetmaster stop
[root@puppetmaster ~]# /etc/init.d/httpd začetek

Zagon ne zažene storitve puppetmaster, zagon pa zažene httpd storitev:
[root@puppetmaster ~]# chkconfig --level 2345 puppetmaster off
[root@puppetmaster ~]# chkconfig --level 2345 httpd on

Prepričaj se, da je port 8140 omogočen:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
tcp 0 0 :::8140 :::* POSLUŠAJ 9834/httpd

Testirajte na strani odjemalca, da vidite, ali je dnevnik napak natisnjen:
[root@puppetclient ~]# Puppetd --test --sledi --debug




Prejšnji:php-fpm.conf Pomembni parametri so podrobno pojasnjeni
Naslednji:25. oktobra 2014 (sobota) ob 23. uri je bil testiran alarm za zračno obrambo in preprečevanje nesreč
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com