Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 8686|Atbildi: 0

Konfigurācijas pārvaldība: leļļu instalēšana un lietošana (1)

[Kopēt saiti]
Publicēts 20.10.2014 09:47:45 | | |
1. Ievads leļļu

Sistēmas administratori bieži ir iestrēguši vairākos atkārtotos uzdevumos: pakotņu jaunināšana, konfigurācijas failu pārvaldība, sistēmas pakalpojumi, cron uzdevumi, jaunu konfigurāciju pievienošana, kļūdu labošana utt. Šie uzdevumi bieži atkārtojas un ir neefektīvi, un pirmā reakcija uz šo uzdevumu risināšanu ir to automatizācija, tāpēc parādās pielāgoti skripti. Vides sarežģītības dēļ pielāgoti skripti un lietojumprogrammas tiek atkārtoti izstrādāti un grūti pielāgojami vairākām platformām, un elastību un funkcionalitāti ir grūti garantēt, tāpēc ir parādījušies automatizēti konfigurācijas pārvaldības rīki, piemēram, Puppet.

Atvērtā koda pasaulē ir daudz konfigurācijas rīku, no kuriem izvēlēties, un daži no galvenajiem produktiem šajā jomā ir:

    Puppet (http://puppet.reductivelabs.com/): konfigurācijas pārvaldības rīks, kas rakstīts Ruby, kas izmanto C/S arhitektūru, lai konfigurētu klientu deklaratīvā valodā.
    Cfengine (http://www.cfengine.org): Viens no pirmajiem atvērtā koda konfigurācijas rīkiem, kas tika izlaists 1993. gadā, tas ir arī C / S arhitektūra, ko parasti izmanto izglītības iestādēs.
    LCFG(http://www.lcfg.org/): konfigurācijas pārvaldības rīks C/S arhitektūrām, kas izmanto XML konfigurāciju definēšanai.
    Bcfg2: konfigurācijas pārvaldības rīks C/S arhitektūrai, kas rakstīts Python, kas izmanto specifikācijas un klienta atbildes, lai konfigurētu mērķa resursdatoru.

Šis dokuments ir veltīts, lai aprakstītu, kā izmantot Puppet, lai pārvaldītu resursdatoru, lietojumprogrammas, fona programmas un dažādus pakalpojumus.

Par Puppet:

1. Kāpēc lieto Puppet?

Puppet ir atvērtā koda Ruby sistēmas konfigurācijas pārvaldības rīks, kas balstās uz C/S izvietošanas arhitektūru. Galvenais izstrādātājs ir Lūks Kaniess, kas seko GPLv2 autortiesību licencei. Kopš 1997. gada Kanies ir iesaistīts UNIX sistēmas administrēšanā, un Puppet izstrāde izrietēja no šīs pieredzes. Neapmierināts ar pieejamajiem konfigurācijas rīkiem, Kanies sāka izstrādāt rīkus Reductive laboratorijā no 2001. līdz 2005. gadam. Drīz Reductive Labs izlaida savu vadošo produktu Puppet.

2. Leļļu iezīmes

Daudzi sistēmas konfigurācijas pārvaldības rīki darbojas ļoti līdzīgi, piemēram, cfengine. Kas padara Puppet unikālu?

Puppet sintakse ļauj izveidot atsevišķu skriptu, lai izveidotu lietotāju visos mērķa resursdatoros. Visi mērķa resursdatori interpretēs un izpildīs moduli pēc kārtas, izmantojot vietējai sistēmai piemērojamo sintaksi. Piemēram, ja šī konfigurācija tiek izpildīta Red Hat serverī, izveidojiet lietotāju, izmantojot komandu useradd; Ja šī konfigurācija tiek izpildīta FreeBSD resursdatorā, tiek izmantota pievienotāja komanda.

Vēl viens ievērojams Puppet aspekts ir tā elastība. Atvērtā pirmkoda programmatūras rakstura dēļ jūs varat brīvi iegūt Puppet pirmkodu, un, ja rodas problēmas un jums ir iespēja, varat modificēt vai uzlabot Puppet kodu, lai tas atbilstu savai videi. Turklāt kopienas izstrādātāji un ziedotāji turpina uzlabot Puppet iespējas. Liela izstrādātāju un lietotāju kopiena ir apņēmusies nodrošināt dokumentāciju un tehnisko atbalstu Puppet.

Leļļu ir arī viegli mērogot. Pielāgotu pakotņu atbalstu un īpašas sistēmas vides konfigurācijas var ātri un viegli pievienot Puppet instalētājam.

3. Leļļu darba režīms

Puppet ir C/S arhitektūras konfigurācijas pārvaldības rīks, kas instalē leļļu servera pakotni (pazīstams kā Puppet master) centrālajā serverī. Instalējiet Puppet klienta programmatūru (sauktu par Puppet Client) mērķa resursdatorā, kas jāpārvalda. Kad klients izveido savienojumu ar leļļu šablonu, konfigurācijas fails, kas definēts leļļu šablonā, tiek kompilēts un pēc tam palaists klientā. Pēc noklusējuma katrs klients sazinās ar serveri ik pēc pusstundas, lai apstiprinātu konfigurācijas informācijas atjaunināšanu. Ja ir jauna konfigurācijas informācija vai konfigurācijas informācija ir mainījusies, konfigurācija tiks pārkompilēta un publicēta katram klientam izpildei. Varat arī aktīvi aktivizēt konfigurācijas informācijas atjaunināšanu serverī, lai piespiestu katru klientu to konfigurēt. Ja klienta konfigurācijas informācija tiek mainīta, tas var iegūt sākotnējo konfigurāciju no servera, lai to labotu.

Konfigurācijas pārvaldība: leļļu instalēšana un lietošana (1)


4. Leļļu nākotne

Visbeidzot, Puppet ir jauns rīks, kas joprojām tiek izstrādāts un attīstīts. Leļļu kopiena strauji aug, un daudzas jaunas idejas tiek pastāvīgi iekļautas, rosinot izstrādi, atjauninājumus un moduļus, kas tiek prezentēti katru dienu.

2. Konfigurācija un instalēšana (Puppet 2.6.4, CentOS 5.4 instalēšana):

Konfigurējiet repozitoriju marionešu serverī un klientā:
apgriezieni minūtē -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
Pievienot:
[epel-lelle]
name=epel lelle
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
iespējots=0
gpgcheck=0

Pievienojiet repozitoriju puppet.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[leļļu laboratorijas]
name=Puppet Labs paketes
baseurl=http://yum.puppetlabs.com/base/
iespējots=0
gpgcheck=0

Leļļu meistara uzstādīšana:
[root@puppetmaster ~]# yum --enablerepo=epel,epel-puppet install puppet-server

Modificējiet resursdatorus un pievienojiet šādus divus ierakstus:
[root@puppetmaster ~]# vi /etc/hosts
192.168.0.10 puppetmaster.leju.com lelle
192.168.0.100 puppetclient.leju.com

Leļļu konfigurēšana:
[root@puppetmaster ~]# cd /etc/puppet/
[root@puppetmaster lelle]# vi lelle.conf

[galvenais]
    # Leļļu žurnāla direktorijs.
    # Noklusējuma vērtība ir '$vardir/log'.
    logdir = /var/log/lelle

    # Kur tiek glabāti leļļu PID faili.
    # Noklusējuma vērtība ir '$vardir/run'.
    rundir = /var/run/puppet

    # Kur tiek glabāti SSL sertifikāti.
    # Noklusējuma vērtība ir '$confdir/ssl'.
    ssldir = $vardir/ssl

[aģents]
    # Fails, kurā puppetd glabā klašu sarakstu
    #, kas saistīts ar izgūto konfigurāciju.  Var ielādēt
    # atsevišķais ''puppet'' izpildāmais fails, izmantojot ''--loadclasses''
    # opcija.
    # Noklusējuma vērtība ir '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Kur puppetd kešatmiņā saglabā vietējo konfigurāciju.  Un
    # paplašinājums, kas norāda kešatmiņas formātu, tiek pievienots automātiski.
    # Noklusējuma vērtība ir '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    serveris = puppetmaster.leju.com
    atskaite = patiess
    klausīties = patiesi

[meistars]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    automātiskā parakstīšanās = patiess
    Atskaites = Uzglabāt
   
[root@puppetmaster lelle]# vi fileserver.conf
     [faili]
    ceļš /etc/puppet/files
    atļaut *

[moduļi]
    atļaut *

[spraudņi]
    atļaut *

[root@puppetmaster lelle]# mkdir /etc/puppet/files
   
[root@puppetmaster lelle]# CD manifests/
Izveidojiet site.pp, kas ir leļļu ieraksta konfigurācijas fails:
[root@puppetmaster manifests]# vi site.pp
importēt "modules.pp"
importēt "roles.pp"
importēt "nodes.pp"

# Vispārīgie iestatījumi standarta tipiem
Exec { ceļš => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

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

Izveidojiet modules.pp, lai importētu moduļus:
[root@puppetmaster manifests]# vi moduļi.pp
importēt "test"

Izveidojiet roles.pp, lai definētu servera lomas:
[root@puppetmaster manifests]# vi roles.pp
klases bāzes klase {
        iekļaut testu
}

Izveidojiet nodes.pp, lai konfigurētu servera mezglus:
[root@puppetmaster manifests]# vi nodes.pp
mezgls 'basenode' {
        Iekļaut pamatklasi
}

mezgls 'puppetclient.leju.com' pārmanto basenode {
        tag("tests")
}

mezgls 'puppetmaster.leju.com' pārmanto basenode {
        tag("tests")
}

[root@puppetmaster manifests]# cd ..
[root@puppetmaster lelle]# mkdir moduļi
Izveidojiet testa moduli:
[root@puppetmaster moduļi]# mkdir -p tests/manifests/
[root@puppetmaster moduļi]# mkdir tests/faili/
[root@puppetmaster moduļi]# cd tests/faili/
[root@puppetmaster faili]# vi test.txt
testa līnija!
[root@puppetmaster faili]# cd .. /manifesti/
Izveidojiet testa klasi, lai piegādātu failu klientam:
[root@puppetmaster manifests]# vi init.pp
klases tests {
        fails { "/tmp/test.txt":
                nodrošināt => klāt,
                grupa => "sakne",
                īpašnieks => "sakne",
                režīms = > "0644",
                avots => "puppet:///test/test.txt"
        }
}

Leļļu meistara palaišana:
[root@puppetmaster manifests]# /etc/init.d/puppetmaster start
Pārliecinieties, vai ports 8140 ir atvērts.

Leļļu klienta instalēšana:
[root@puppetclient ~]# yum --enablerepo="epel,epel-puppet" instalēt leļļu

Modificējiet resursdatorus un pievienojiet šādus divus ierakstus:
[root@puppetclient ~]# vi /etc/hosts
192.168.0.10 puppetmaster.leju.com lelle
192.168.0.100 puppetclient.leju.com

Leļļu konfigurēšana:
[root@puppetclient ~]# cd /etc/puppet/
[root@puppetclient lelle]# vi lelle.conf
[galvenais]
    # Leļļu žurnāla direktorijs.
    # Noklusējuma vērtība ir '$vardir/log'.
    logdir = /var/log/lelle

    # Kur tiek glabāti leļļu PID faili.
    # Noklusējuma vērtība ir '$vardir/run'.
    rundir = /var/run/puppet

    # Kur tiek glabāti SSL sertifikāti.
    # Noklusējuma vērtība ir '$confdir/ssl'.
    ssldir = $vardir/ssl

[aģents]
    # Fails, kurā puppetd glabā klašu sarakstu
    #, kas saistīts ar izgūto konfigurāciju.  Var ielādēt
    # atsevišķais ''puppet'' izpildāmais fails, izmantojot ''--loadclasses''
    # opcija.
    # Noklusējuma vērtība ir '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Kur puppetd kešatmiņā saglabā vietējo konfigurāciju.  Un
    # paplašinājums, kas norāda kešatmiņas formātu, tiek pievienots automātiski.
    # Noklusējuma vērtība ir '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    serveris = puppetmaster.leju.com
    atskaite = patiess
    klausīties = patiesi
   
[root@puppetclient lelle]# vi namespaceauth.conf
[leļļu skrējējs]
    atļaut puppetmaster.leju.com
    atļaut *.leju.com
   
[root@puppetclient lelle]# vi auth.conf
Pievienot atļaut * pēdējai rindiņai
......
ceļš /
Auth jebkurš
atļaut *

[root@puppetclient lelle]# cd
Izpildīt marioneti:
[root@puppetclient ~]# lelle --noop --test --trace --debug
Ja Puppet Master nav iestatīts: autosign=true, tas ir jāizpilda Puppet Master:
[root@puppetmaster ~]# leļļu sertifikāts -l
puppetclient.leju.com
[root@puppetmaster ~]# leļļu sertifikāts -s puppetclient.leju.com
Parakstiet puppetclient.leju.com šādi. Pēc tam atgriezieties pie klienta, lai izpildītu šeit:
[root@puppetclient ~]# lelle --noop --test --trace --debug
Pievienojieties --noop, konfigurācija netiks īsti piemērota klientam, galvenokārt tiek izmantota testēšanai, lai redzētu, vai izdrukā nav kļūdu, un izpildīt bez kļūdām:
[root@puppetclient ~]# lelle --tests --trace --atkļūdošana

Skatīt dokumentu:
[root@puppetclient ~]# ll /tmp/
Kopā 8
-rw-r--r-- 1 saknes sakne 11 februāris 25 22:35 test.txt
Dokuments ir izsniegts.

Ir iespējams arī virzīt uz Puppet Master:
[root@puppetmaster ~]# leļļu sitiens -d --saimnieks puppetclient.leju.com
Aktivizēšanas puppetclient.leju.com
Statusa iegūšana
Statuss ir panākumi
puppetclient.leju.com pabeigts ar izejas kodu 0
Pabeigts
Atgriežot skaitli 0, tiek norādīts, ka klienta marionete ir veiksmīgi aktivizēta.

Iestatiet leļļu automātiskās palaišanas režīmā:
chkconfig --līmenis 2345 lelle ieslēgta

Modificējiet leļļu pārzini, lai izmantotu pasažieru
Pasažieris ir Apache 2.x paplašinājums, lai palaistu Rails vai Rack lietojumprogrammas Apache. puppetmaster izmanto WEBrick, lai nodrošinātu failu pakalpojumus pēc noklusējuma, ja jums ir daudz leļļu klientu, puppetmaster failu pakalpojuma veiktspēja būs slikta, lai padarītu puppetmaster stabilāku, tāpēc izmantojiet Apache, lai nodrošinātu failu pakalpojumus.

Uzstādīšana:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Pasažieris 2.2.2 RHEL5 darbojas labi.
Pievienojiet foreman.repo repozitoriju:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[meistars]
name=Foreman stabils repozitorijs
baseurl=http://yum.theforeman.org/stable
gpgcheck=0
iespējots=1
[root@puppetmaster ~]# yum instalēt rubygem-passenger-2.2.2-1
[root@puppetmaster ~]# rubygem-rack-1.0.1-1
[root@puppetmaster ~]# pasažieru instalēšana-apache2-module

Apache SSL moduļa instalēšana:
[root@puppetmaster ~]# yum instalēt mod_ssl

Lai konfigurētu Puppet Rack lietojumprogrammu:
mkdir -p /etc/lelle/plaukts/leļļu meistars/
mkdir /etc/lelle/plaukts/leļļu meistars/publisks /etc/lelle/plaukts/leļļu meistars/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 lelle /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
PasažierisRubīns /usr/bin/rubīns
PasažierisMaxPoolIzmērs 30
Pasažieru baseinsDīkstāves laiks 1500
Pasažieru maksimumsPieprasījumi 1000
Pasažieru statistikaDroseļvārsta likme 120
RackAutoDetect izslēgts
Sliežu automātiskā noteikšana izslēgta

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# jūs, iespējams, vēlaties noregulēt šos iestatījumus
Pasažieru augsta veiktspēja ieslēgta
Pasažieru maks.BaseinsIzmērs 12
Pasažieru baseinsDīkstāves laiks 1500
# Pasažieru MaxPieprasījumi 1000
Pasažieru statistikaDroseļvārsta likme 120
RackAutoDetect izslēgts
Sliežu automātiskā noteikšana izslēgta

Klausīties 8140

<VirtualHost *:8140>
        SSLEngine ieslēgts
        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
        # Ja Apache sūdzas par nederīgiem parakstiem CRL, varat mēģināt atspējot
        # CRL pārbaude, komentējot nākamo rindu, bet tas nav ieteicams.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient pēc izvēles
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # Šādas klienta galvenes ļauj vienai un tai pašai konfigurācijai strādāt ar mārciņu.
        RequestHeader kopa X-SSL-Subject %{SSL_CLIENT_S_DN}e
        RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e
        RequestHeader kopa X-Client-Verify %{SSL_CLIENT_VERIFY}e

        DocumentRoot /etc/puppet/rack/puppetmasterd/public/
        RackBaseURI /
        <Direktorijs /etc/puppet/rack/puppetmasterd/>
                Opcijas Nav
                AllowOverride Nav
                Pasūtīt atļaut,noraidīt
                atļaut no visiem
        </Directory>
</VirtualHost>

Modificējiet leļļu meistara konfigurācijas failu, lai pievienotu šādas divas rindiņas:
[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[meistars]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
Modificēt /etc/sysconfig/puppetmaster:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# Beigās pievienojiet šādu rindu:
PUPPETMASTER_EXTRA_OPTS="--atskaišu krātuve"
Ja jums ir jāziņo gan meistaram, gan leļļu panelim, pievienojiet šādu rindu:
PUPPETMASTER_EXTRA_OPTS="--atskaišu veikals, meistars, puppet_dashboard"

Pārtrauciet leļļu meistara pakalpojumu un sāciet apache pakalpojumu:
[root@puppetmaster ~]# /etc/init.d/puppetmaster stop
[root@puppetmaster ~]# /etc/init.d/httpd sākums

Boot nestartē puppetmaster pakalpojumu, boot sāk httpd pakalpojumu:
[root@puppetmaster ~]# chkconfig --līmenis 2345 leļļu meistars izslēgts
[root@puppetmaster ~]# chkconfig --level 2345 httpd on

Pārliecinieties, vai ir iespējots ports 8140:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
tcp 0 0 :::8140 :::* KLAUSĪTIES 9834/httpd

Pārbaudiet klienta pusē, lai redzētu, vai kļūdu žurnāls ir izdrukāts:
[root@puppetclient ~]# lelle --tests --trace --atkļūdošana




Iepriekšējo:php-fpm.conf Detalizēti izskaidroti svarīgi parametri
Nākamo:2014. gada 25. oktobrī (sestdiena) pulksten 16 tika pārbaudīta pretgaisa aizsardzības un katastrofu novēršanas trauksme
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com