Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 8686|Atsakyti: 0

Konfigūracijos valdymas: lėlių diegimas ir naudojimas (1)

[Kopijuoti nuorodą]
Paskelbta 2014-10-20 09:47:45 | | |
1. Įvadas į lėlę

Sistemos administratoriai dažnai įstringa atliekant daugybę pasikartojančių užduočių: atnaujina paketus, tvarko konfigūracijos failus, sistemos paslaugas, cron užduotis, prideda naujų konfigūracijų, taiso klaidas ir kt. Šios užduotys dažnai pasikartoja ir yra neefektyvios, o pirmasis atsakas į šių užduočių sprendimą yra jų automatizavimas, todėl atsiranda pasirinktiniai scenarijai. Dėl aplinkos sudėtingumo pasirinktiniai scenarijai ir programos yra nuolat kuriami ir sunkiai pritaikomi kelioms platformoms, o lankstumą ir funkcionalumą sunku garantuoti, todėl atsirado automatizuotų konfigūracijos valdymo įrankių, tokių kaip "Puppet".

Atvirojo kodo pasaulyje galima rinktis iš daugybės konfigūravimo įrankių, o kai kurie pagrindiniai šios srities produktai yra šie:

    Puppet (http://puppet.reductivelabs.com/): Ruby kalba parašytas konfigūracijos valdymo įrankis, kuris naudoja C/S architektūrą, kad sukonfigūruotų klientą deklaratyvia kalba.
    Cfengine (http://www.cfengine.org): Vienas iš pirmųjų išleistų atvirojo kodo konfigūravimo įrankių, išleistas 1993 m., Tai taip pat C/S architektūra, dažniausiai naudojama švietimo įstaigose.
    LCFG(http://www.lcfg.org/): C/S architektūrų konfigūracijos valdymo įrankis, kuris naudoja XML konfigūracijoms apibrėžti.
    Bcfg2: C/S architektūros konfigūracijos valdymo įrankis, parašytas Python, kuris naudoja specifikacijas ir kliento atsakymus tiksliniam pagrindiniam kompiuteriui konfigūruoti.

Šis dokumentas skirtas aprašyti, kaip naudoti "Puppet" pagrindiniam kompiuteriui, programoms, foninėms programoms ir įvairioms paslaugoms valdyti.

Apie "Puppet":

1. Kam naudojamas Puppet?

"Puppet" yra atvirojo kodo "Ruby" pagrindu sukurtas sistemos konfigūracijos valdymo įrankis, pagrįstas C/S diegimo architektūra. Pagrindinis kūrėjas yra Luke Kanies, kuris vadovaujasi GPLv2 autorių teisių licencija. Nuo 1997 m. Kanies dalyvauja UNIX sistemos administravime, o "Puppet" kūrimas kilo iš šios patirties. Nepatenkintas turimais konfigūravimo įrankiais, Kanies pradėjo kurti įrankius Reductive laboratorijoje 2001–2005 m. Netrukus "Reductive Labs" išleido savo pavyzdinį produktą "Puppet".

2. Pupput savybės

Daugelis sistemos konfigūracijos valdymo įrankių veikia labai panašiai, pavyzdžiui, cfengine. Kuo "Puppet" yra unikali?

"Puppet" sintaksė leidžia sukurti atskirą scenarijų, kad sukurtumėte vartotoją visuose tiksliniuose pagrindiniuose kompiuteriuose. Visi tiksliniai pagrindiniai kompiuteriai interpretuos ir vykdys modulį savo ruožtu, naudodami vietinei sistemai taikomą sintaksę. Pavyzdžiui, jei ši konfigūracija vykdoma "Red Hat" serveryje, sukurkite vartotoją naudodami komandą useradd; Jei ši konfigūracija vykdoma FreeBSD pagrindiniame kompiuteryje, naudojama adduser komanda.

Kitas nuostabus "Puppet" aspektas yra jos lankstumas. Dėl atvirojo kodo programinės įrangos pobūdžio galite laisvai gauti "Puppet" šaltinio kodą, o jei susiduriate su problemomis ir turite galimybę, galite modifikuoti arba patobulinti "Puppet" kodą, kad jis atitiktų jūsų aplinką. Be to, bendruomenės kūrėjai ir rėmėjai toliau tobulina "Puppet" galimybes. Didelė kūrėjų ir vartotojų bendruomenė taip pat yra įsipareigojusi teikti "Puppet" dokumentaciją ir techninę pagalbą.

Lėlę taip pat lengva keisti. Pasirinktinio paketo palaikymas ir specialios sistemos aplinkos konfigūracijos gali būti greitai ir lengvai įtrauktos į "Puppet" diegimo programą.

3. Lėlių darbo režimas

"Puppet" yra C/S architektūros konfigūracijos valdymo įrankis, kuris centriniame serveryje įdiegia lėlių serverio paketą (žinomą kaip "Puppet master"). Įdiekite "Puppet" kliento programinę įrangą (vadinamą "Puppet Client") tiksliniame pagrindiniame kompiuteryje, kurį reikia valdyti. Kai klientas prisijungia prie lėlių meistro, sukompiliuojamas konfigūracijos failas, apibrėžtas lėlių meistre, ir paleidžiamas kliente. Pagal numatytuosius nustatymus kiekvienas klientas bendrauja su serveriu kas pusvalandį, kad patvirtintų konfigūracijos informacijos atnaujinimą. Jei yra nauja konfigūracijos informacija arba pasikeitė konfigūracijos informacija, konfigūracija bus iš naujo kompiliuojama ir publikuojama kiekvienam klientui vykdyti. Taip pat galite aktyviai suaktyvinti serverio konfigūracijos informacijos atnaujinimą, kad priverstumėte kiekvieną klientą ją sukonfigūruoti. Jei kliento konfigūracijos informacija pakeičiama, jis gali gauti pradinę konfigūraciją iš serverio, kad ją ištaisytų.

Konfigūracijos valdymas: lėlių diegimas ir naudojimas (1)


4. Lėlių ateitis

Galiausiai, "Puppet" yra jaunas įrankis, kuris vis dar kuriamas ir tobulinamas. Lėlių bendruomenė sparčiai auga, nuolat įtraukiama daug naujų idėjų, skatinančių kasdien pristatyti plėtrą, atnaujinimus ir modulius.

2. Konfigūracija ir diegimas (Puppet 2.6.4 CentOS 5.4 diegimas):

Sukonfigūruokite saugyklą lėlių serveryje ir kliente:
aps./min -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
Pridėti į:
[epel-marionetė]
name=epel lėlė
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
įjungta=0
gpgcheck=0

Pridėkite saugyklą puppet.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[lėlių laboratorijos]
name=Puppet Labs paketai
baseurl=http://yum.puppetlabs.com/base/
įjungta=0
gpgcheck=0

Lėlių meistro montavimas:
[root@puppetmaster ~]# yum --enablerepo=epel,epel-puppet install puppet-server

Modifikuokite pagrindinius kompiuterius ir įtraukite šiuos du įrašus:
[root@puppetmaster ~]# vi /etc/hosts
192.168.0.10 puppetmaster.leju.com lėlė
192.168.0.100 puppetclient.leju.com

Lėlės konfigūravimas:
[root@puppetmaster ~]# cd /etc/puppet/
[root@puppetmaster lėlė]# vi puppet.conf

[pagrindinis]
    # Lėlių žurnalo katalogas.
    # Numatytoji reikšmė yra "$vardir/log".
    logdir = /var/log/marionetė

    # Kur saugomi lėlių PID failai.
    # Numatytoji reikšmė yra "$vardir/run".
    rundir = /var/run/puppet

    # Kur saugomi SSL sertifikatai.
    # Numatytoji reikšmė yra "$confdir/ssl".
    ssldir = $vardir/ssl

[agentas]
    # Failas, kuriame puppetd saugo klasių sąrašą
    # susietas su nuskaityta konfigūracija.  Galima pakrauti
    # atskiras ''puppet'' vykdomasis failas naudojant ''--loadclasses''
    # variantas.
    # Numatytoji reikšmė yra "$confdir/classes.txt".
    klasės failas = $vardir/classes.txt

    # Kur puppetd talpykloje vietinę konfigūraciją.  An
    # plėtinys, nurodantis talpyklos formatą, pridedamas automatiškai.
    # Numatytoji reikšmė yra '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    serveris = puppetmaster.leju.com
    ataskaita = teisinga
    klausytis = tiesa

[meistras]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    automatinis pasirašymas = teisinga
    ataskaitos = saugoti
   
[root@puppetmaster lėlė]# vi fileserver.conf
     [failai]
    kelias /etc/lėlė/failai
    leisti *

[moduliai]
    leisti *

[įskiepiai]
    leisti *

[root@puppetmaster lėlė]# mkdir /etc/puppet/files
   
[root@puppetmaster lėlė]# cd manifests/
Sukurkite site.pp, kuris yra lėlių įrašo konfigūracijos failas:
[root@puppetmaster manifestai]# vi site.pp
importuoti "modules.pp"
Importuoti "roles.pp"
importuoti "nodes.pp"

# Bendrieji standartinių tipų nustatymai
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

filebucket { main: server => "puppetmaster.leju.com" }
Failas { atsarginė kopija => pagrindinis }

Sukurkite modules.pp moduliams importuoti:
[root@puppetmaster manifests]# vi modules.pp
importuoti "testą"

Sukurkite roles.pp serverio vaidmenims apibrėžti:
[root@puppetmaster manifests]# vi roles.pp
klasė baseclass {
        įtraukti testą
}

Sukurkite nodes.pp, kad sukonfigūruotumėte serverio mazgus:
[root@puppetmaster manifests]# vi nodes.pp
mazgas 'basenode' {
        Įtraukti bazinę klasę
}

mazgas 'puppetclient.leju.com' paveldi basenode {
        žyma ("testas")
}

mazgas 'puppetmaster.leju.com' paveldi basenode {
        žyma ("testas")
}

[root@puppetmaster manifests]# cd ..
[root@puppetmaster lėlė]# mkdir moduliai
Sukurkite bandomąjį modulį:
[root@puppetmaster moduliai]# mkdir -p testas/manifestai/
[root@puppetmaster moduliai]# mkdir testas/failai/
[root@puppetmaster moduliai]# CD testas/failai/
[root@puppetmaster failai]# vi test.txt
bandymo linija!
[root@puppetmaster failai]# cd .. /manifestai/
Sukurkite bandomąją klasę, kad pristatytumėte failą klientui:
[root@puppetmaster manifests]# vi init.pp
klasės testas {
        failas { "/tmp/test.txt":
                užtikrinti = > yra,
                group => "šaknis",
                savininkas => "šaknis",
                režimas = > "0644",
                šaltinis => "puppet:///test/test.txt"
        }
}

"Puppet Master" paleidimas:
[root@puppetmaster manifestai]# /etc/init.d/puppetmaster pradžia
Įsitikinkite, kad 8140 prievadas įjungtas.

Lėlių kliento diegimas:
[root@puppetclient ~]# yum --enablerepo="epel,epel-puppet" įdiegti lėlę

Modifikuokite pagrindinius kompiuterius ir įtraukite šiuos du įrašus:
[root@puppetclient ~]# vi /etc/hosts
192.168.0.10 puppetmaster.leju.com lėlė
192.168.0.100 puppetclient.leju.com

Lėlės konfigūravimas:
[root@puppetclient ~]# cd /etc/puppet/
[root@puppetclient lėlė]# vi puppet.conf
[pagrindinis]
    # Lėlių žurnalo katalogas.
    # Numatytoji reikšmė yra "$vardir/log".
    logdir = /var/log/marionetė

    # Kur saugomi lėlių PID failai.
    # Numatytoji reikšmė yra "$vardir/run".
    rundir = /var/run/puppet

    # Kur saugomi SSL sertifikatai.
    # Numatytoji reikšmė yra "$confdir/ssl".
    ssldir = $vardir/ssl

[agentas]
    # Failas, kuriame puppetd saugo klasių sąrašą
    # susietas su nuskaityta konfigūracija.  Galima pakrauti
    # atskiras ''puppet'' vykdomasis failas naudojant ''--loadclasses''
    # variantas.
    # Numatytoji reikšmė yra "$confdir/classes.txt".
    klasės failas = $vardir/classes.txt

    # Kur puppetd talpykloje vietinę konfigūraciją.  An
    # plėtinys, nurodantis talpyklos formatą, pridedamas automatiškai.
    # Numatytoji reikšmė yra '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    serveris = puppetmaster.leju.com
    ataskaita = teisinga
    klausytis = tiesa
   
[root@puppetclient lėlė]# vi namespaceauth.conf
[lėlių bėgikas]
    leisti puppetmaster.leju.com
    leisti *.leju.com
   
[root@puppetclient lėlė]# vi auth.conf
Pridėti leisti * į paskutinę eilutę
......
kelias /
Auth bet koks
leisti *

[root@puppetclient lėlė]# cd
Vykdyti lėlę:
[root@puppetclient ~]# puppetd --noop --test --trace --debug
Jei Puppet Master nenustato: autosign=true, jis turi būti vykdomas Puppet Master:
[root@puppetmaster ~]# lėlių sertifikatas -l
puppetclient.leju.com
[root@puppetmaster ~]# lėlių sertifikatas -s puppetclient.leju.com
Pasirašykite puppetclient.leju.com taip. Tada grįžkite į klientą ir vykdykite čia:
[root@puppetclient ~]# puppetd --noop --test --trace --debug
Prisijunkite --noop, konfigūracija tikrai nebus taikoma klientui, daugiausia naudojama testavimui, kad pamatytumėte, ar spaudinyje nėra klaidų, ir vykdykite be klaidų:
[root@puppetclient ~]# puppetd --test --trace --debug

Peržiūrėti dokumentą:
[root@puppetclient ~]# ll /tmp/
Iš viso 8
-rw-r--r-- 1 šaknis šaknis 11 Vas 25 22:35 test.txt
Dokumentas išduotas.

Taip pat galima paspausti "Puppet Master":
[root@puppetmaster ~]# lėlių smūgis -d --šeimininkas puppetclient.leju.com
Suaktyvinti puppetclient.leju.com
Statuso gavimas
Būsena yra sėkmė
puppetclient.leju.com baigtas su išėjimo kodu 0
Baigta
Grąžinimas 0 rodo, kad kliento lėlė buvo sėkmingai suaktyvinta.

Nustatykite lėlę automatiniam paleidimui:
chkconfig --lygis 2345 lėlė įjungta

Modifikuoti lėlių meistrą, kad būtų naudojamas keleivis
"Keleivis" yra "Apache 2.x" plėtinys, skirtas "Apache" bėgių arba stovų programoms vykdyti. puppetmaster naudoja WEBrick failų paslaugoms teikti pagal numatytuosius nustatymus, jei turite daug lėlių klientų, puppetmaster failų paslaugos našumas bus prastas, kad puppetmaster būtų patikimesnis, todėl naudokite Apache failų paslaugoms teikti.

Montavimas:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Keleivis 2.2.2 RHEL5 veikia gerai.
Pridėti foreman.repo saugyklą:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[meistras]
name=Meistro stabili saugykla
baseurl=http://yum.theforeman.org/stable
gpgcheck=0
įjungta=1
[root@puppetmaster ~]# yum įdiegti rubygem-passenger-2.2.2-1
[root@puppetmaster ~]# rubygem-rack-1.0.1-1
[root@puppetmaster ~]# keleivių-įdiegti-apache2-module

Apache SSL modulio diegimas:
[root@puppetmaster ~]# yum įdiegti mod_ssl

Norėdami sukonfigūruoti lėlių stovo programą:
mkdir -p /etc/lėlė/stelažas/lėlių meistras/
mkdir /etc/lėlė/stovas/lėlių meistras/viešasis /etc/lėlė/stovas/lėlių meistras/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 lėlė /etc/lėlė/stelažas/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
KeleivisRuby /usr/bin/ruby
KeleivisMaxPoolDydis 30
Keleivio baseinasTuščiosios eigos laikas 1500
KeleivisMaxPrašymai 1000
Keleivio stat.Droselio norma 120
Stovo automatinis aptikimas išjungtas
Bėgių automatinis aptikimas išjungtas

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# tikriausiai norėsite sureguliuoti šiuos nustatymus
KeleivisDidelis našumas įjungtas
KeleivisMaxBaseinasDydis 12
Keleivio baseinasTuščiosios eigos laikas 1500
# KeleivisMaxPrašymai 1000
Keleivio stat.Droselio norma 120
Stovo automatinis aptikimas išjungtas
Bėgių automatinis aptikimas išjungtas

Klausyti 8140

<VirtualHost *:8140>
        SSLEngine įjungta
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite VISI:! 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
        # Jei "Apache" skundžiasi negaliojančiais parašais CRL, galite pabandyti išjungti
        # CRL tikrinimas komentuojant kitą eilutę, tačiau tai nerekomenduojama.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient pasirinktinai
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # Šios kliento antraštės leidžia tą pačią konfigūraciją dirbti su Svaru.
        RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e
        RequestHeader rinkinys X-Client-DN %{SSL_CLIENT_S_DN}e
        RequestHeader rinkinys X-Client-Verify %{SSL_CLIENT_VERIFY}e

        DocumentRoot /etc/puppet/rack/puppetmasterd/public/
        RackBaseURI /
        <Katalogas /etc/puppet/rack/puppetmasterd/>
                Parinktys Nėra
                LeistiNepaisyti nė vieno
                Užsakyti leisti,atmesti
                leisti iš visų
        </Directory>
</VirtualHost>

Pakeiskite lėlių meistro konfigūracijos failą, kad įtrauktumėte šias dvi eilutes:
[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[meistras]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
Modifikuoti /etc/sysconfig/puppetmaster:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# Pabaigoje pridėkite šią eilutę:
PUPPETMASTER_EXTRA_OPTS="--ataskaitų saugykla"
Jei jums reikia pranešti ir meistrui, ir lėlių prietaisų skydeliui, pridėkite šią eilutę:
PUPPETMASTER_EXTRA_OPTS="--ataskaitos parduotuvė, meistras, puppet_dashboard"

Sustabdykite lėlių meistro paslaugą ir paleiskite "Apache" paslaugą:
[root@puppetmaster ~]# /etc/init.d/puppetmaster stop
[root@puppetmaster ~]# /etc/init.d/httpd start

Įkrova nepaleidžia lėlių meistro paslaugos, įkrova paleidžia httpd paslaugą:
[root@puppetmaster ~]# chkconfig --lygis 2345 puppetmaster išjungtas
[root@puppetmaster ~]# chkconfig --level 2345 httpd on

Įsitikinkite, kad įjungtas 8140 prievadas:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
tcp 0 0 :::8140 :::* KLAUSYTI 9834/httpd

Patikrinkite kliento pusėje, kad pamatytumėte, ar klaidų žurnalas išspausdintas:
[root@puppetclient ~]# puppetd --test --trace --debug




Ankstesnis:php-fpm.conf Išsamiai paaiškinti svarbūs parametrai
Kitą:2014 m. spalio 25 d. (šeštadienį) 16 val. buvo išbandyta oro gynybos ir nelaimių prevencijos signalizacija
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com