See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 8686|Vastuse: 0

Konfiguratsiooni haldus: Nukupaigaldus ja kasutamine (1)

[Kopeeri link]
Postitatud 20.10.2014 09:47:45 | | |
1. Sissejuhatus nukumaailmale

Süsteemiadministraatorid on sageli kinni korduvate ülesannete jadades: pakettide uuendamine, konfiguratsioonifailide, süsteemiteenuste, cron-ülesannete haldamine, uute konfiguratsioonide lisamine, vigade parandamine jne. Need ülesanded on sageli korduvad ja ebaefektiivsed ning esimene lahendus nende lahendamisel on nende automatiseerimine, mistõttu ilmuvad kohandatud skriptid. Keskkonna keerukuse tõttu arendatakse korduvalt kohandatud skripte ja rakendusi ning neid on raske mitmele platvormile sobitada ning paindlikkust ja funktsionaalsust on raske garanteerida, mistõttu on tekkinud automatiseeritud konfiguratsioonihalduse tööriistad nagu Puppet.

Avatud lähtekoodiga maailmas on valida paljude konfiguratsioonitööriistade vahel ning mõned peamised tooted selles valdkonnas on:

    Puppet (http://puppet.reductivelabs.com/): Ruby keeles kirjutatud konfiguratsioonihaldustööriist, mis kasutab C/S arhitektuuri kliendi konfigureerimiseks deklaratiivses keeles.
    Cfengine (http://www.cfengine.org): Üks esimesi avatud lähtekoodiga konfiguratsioonitööriistu, mis ilmus 1993. aastal, on ka C/S arhitektuur, mida tavaliselt kasutatakse haridusasutustes.
    LCFG(http://www.lcfg.org/): Konfiguratsioonihaldustööriist C/S arhitektuuridele, mis kasutab XML-i konfiguratsioonide määratlemiseks.
    Bcfg2: Pythonis kirjutatud C/S arhitektuuri konfiguratsioonihaldustööriist, mis kasutab spetsifikatsioone ja kliendi vastuseid sihthosti konfigureerimiseks.

See dokument on pühendatud Puppet'i kasutamisele oma hosti, rakenduste, taustaprogrammide ja erinevate teenuste haldamiseks.

Puppetist:

1. Milleks Puppeti kasutatakse?

Puppet on avatud lähtekoodiga Ruby-põhine süsteemikonfiguratsiooni haldustööriist, mis tugineb C/S juurutusarhitektuurile. Peamine arendaja on Luke Kanies, kes järgib GPLv2 autoriõiguse litsentsi. Alates 1997. aastast on Kanies olnud seotud UNIX-süsteemi haldusega ning Puppeti arendamine sai alguse sellest kogemusest. Kuna Kanies ei olnud rahul olemasolevate konfiguratsioonitööriistadega, hakkas ta arendama tööriistu Reductive laboris aastatel 2001–2005. Peagi andis Reductive Labs välja oma lipulaeva Puppet.

2. Pupputi omadused

Paljud süsteemikonfiguratsioonihalduse tööriistad töötavad väga sarnaselt, näiteks cfengine. Mis teeb Puppeti ainulaadseks?

Puppeti süntaks võimaldab luua eraldi skripti, et ehitada kasutaja kõigile sihthostidele. Kõik sihthostid tõlgendavad ja käivitavad moodulit kordamööda, kasutades kohaliku süsteemi süntaksit. Näiteks, kui see konfiguratsioon täidetakse Red Hat serveris, loo kasutaja käsuga useradd; Kui see konfiguratsioon täidetakse FreeBSD hostil, kasutatakse adduser-käsku.

Veel üks tähelepanuväärne aspekt Puppeti juures on selle paindlikkus. Avatud lähtekoodiga tarkvara olemuse tõttu saad vabalt kätte Puppeti lähtekoodi ning kui tekivad probleemid ja sul on võimalus, saad Puppet'i koodi muuta või täiustada vastavalt oma keskkonnale. Lisaks jätkavad kogukonna arendajad ja annetajad Puppeti võimekuse täiustamist. Suur arendajate ja kasutajate kogukond on samuti pühendunud Puppetile dokumentatsiooni ja tehnilise toe pakkumisele.

Nukk on samuti lihtne skaleerida. Kohandatud pakettide tugi ja spetsiaalsed süsteemikeskkonna konfiguratsioonid saab kiiresti ja lihtsalt lisada Puppeti installerisse.

3. Nuku töörežiim

Puppet on C/S arhitektuuri konfiguratsioonihaldustööriist, mis paigaldab nukuserveri paketi (tuntud kui Puppet master) keskserverile. Paigalda Puppet klienditarkvara (nimega Puppet Client) sihthostile, mida tuleb hallata. Kui klient ühendub Puppet masteriga, kompileeritakse Puppet masteril määratletud konfiguratsioonifail ja käivitatakse seejärel kliendil. Vaikimisi suhtleb iga klient serveriga iga poole tunni tagant, et kinnitada konfiguratsiooniteabe uuendamist. Kui konfiguratsiooniteave või konfiguratsiooniteave on muutunud, kompileeritakse konfiguratsioon uuesti ja avaldatakse igale kliendile täitmiseks. Samuti saad aktiivselt käivitada serveri konfiguratsiooniinfo uuenduse, sundides iga klienti seda seadistama. Kui kliendi konfiguratsiooniinfot muudetakse, saab ta serverilt algse konfiguratsiooni saada, et seda parandada.

Konfiguratsiooni haldus: Nukupaigaldus ja kasutamine (1)


4. Puppeti tulevik

Lõpuks on Puppet noor tööriist, mis on endiselt arendamisel ja arendamisel. Nukukogukond kasvab kiiresti ning pidevalt lisatakse palju uusi ideid, mis sunnivad iga päev arendama, uuendusi ja mooduleid esitama.

2. Konfiguratsioon ja paigaldus (Puppet 2.6.4 CentOS 5.4 paigaldus):

Seadista repositoorium nukuserveris ja kliendis:
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
Lisa:
[epel-nukk]
nimi=epel nukk
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
enabled=0
gpgcheck=0

Lisa repository puppet.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[nukulaborid]
name=Puppet Labs Paketid
baseurl=http://yum.puppetlabs.com/base/
enabled=0
gpgcheck=0

Nukumeistri paigaldus:
[root@puppetmaster ~]# yum --enablerepo=epel,epel-puppet install puppet-server

Muuda hoste ja lisa järgmised kaks kirjet:
[root@puppetmaster ~]# vi /etc/hostid
192.168.0.10 puppetmaster.leju.com nukk
192.168.0.100 puppetclient.leju.com

Puppeti seadistamine:
[root@puppetmaster ~]# cd /etc/nukk/
[root@puppetmaster nuku]# vi nuku.conf

[peamine]
    # Nukulogi kataloog.
    # Vaikimisi väärtus on '$vardir/log'.
    logdir = /var/log/nukk

    # Kus hoitakse Puppet PID faile.
    # Vaikimisi väärtus on '$vardir/run'.
    rundir = /var/run/nukk

    # Kus hoitakse SSL-sertifikaate.
    # Vaikimisi väärtus on '$confdir/ssl'.
    ssldir = $vardir/ssl

[agent]
    # Fail, kuhu puppetd salvestab klasside nimekirja
    # seotud saadud konfiguratsiooniga.  Saab laadida
    # eraldi ''nukuke'' käivitatav fail, kasutades ''--loadclasses''
    # võimalus.
    # Vaikimisi väärtus on '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Kus nukk salvestab kohaliku konfiguratsiooni.  An
    # laiendus, mis näitab, et vahemälu formaat lisatakse automaatselt.
    # Vaikimisi väärtus on '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    server = puppetmaster.leju.com
    aruanne = tõene
    kuula = tõene

[meister]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    autosign = tõene
    aruanded = pood
   
[root@puppetmaster nuku]# vi fileserver.conf
     [failid]
    path /etc/puppet/files
    luba *

[moodulid]
    luba *

[pluginad]
    luba *

[root@puppetmaster nuku]# mkdir /jne/nukk/failid
   
[root@puppetmaster nuku]# CD ilmub/
Loo site.pp, mis on nukukirje konfiguratsioonifail:
[root@puppetmaster manifesteerib]# vi site.pp
Impordi "modules.pp"
Impordi "roles.pp"
Impordi "nodes.pp"

# Standardtüüpide üldised seaded
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

filebucket { main: server => "puppetmaster.leju.com" }
Fail { varukoopia => peamine }

Loo modules.pp moodulite importimiseks:
[root@puppetmaster manifests]# vi modules.pp
Impordi "test"

Create roles.pp serveri rollide määratlemiseks:
[root@puppetmaster manifesteerib]# vi roles.pp
class baseclass {
        Include test
}

Loo nodes.pp serverisõlmede seadistamiseks:
[root@puppetmaster manifesteerib]# vi nodes.pp
sõlm 'basenode' {
        include baseclass
}

sõlm 'puppetclient.leju.com' pärib basenode {
        silt ("test")
}

sõlm 'puppetmaster.leju.com' pärib basenode'i {
        silt ("test")
}

[root@puppetmaster ilmub]# cd ..
[root@puppetmaster nuku]# mkdir moodulid
Loo testmoodul:
[root@puppetmaster moodulid]# mkdir -p test/manifestid/
[root@puppetmaster moodulid]# mkdir test/failid/
[root@puppetmaster moodulid]# CD test/failid/
[root@puppetmaster failid]# vi test.txt
Testliin!
[root@puppetmaster failid]# CD .. /manifesteerib/
Loo testklass, mis edastab faili kliendile:
[root@puppetmaster avaldub]# vi init.pp
klassitest {
        faili { "/tmp/test.txt":
                ensure => olemas,
                grupp => "juur",
                omanik => "juur",
                mode => "0644",
                allikas => "puppet:///test/test.txt"
        }
}

Puppet Masteri käivitamine:
[root@puppetmaster ilmub]# /etc/init.d/puppetmaster start
Veendu, et port 8140 on avatud.

Puppet kliendi paigaldus:
[root@puppetclient ~]# yum --enablerepo="epel,epel-nukk" paigalda nukk

Muuda hoste ja lisa järgmised kaks kirjet:
[root@puppetclient ~]# vi /etc/hostid
192.168.0.10 puppetmaster.leju.com nukk
192.168.0.100 puppetclient.leju.com

Nuku seadistamine:
[root@puppetclient ~]# CD /jne/nukk/
[root@puppetclient nuku]# vi nuku.conf
[peamine]
    # Nukulogi kataloog.
    # Vaikimisi väärtus on '$vardir/log'.
    logdir = /var/log/nukk

    # Kus hoitakse Puppet PID faile.
    # Vaikimisi väärtus on '$vardir/run'.
    rundir = /var/run/nukk

    # Kus hoitakse SSL-sertifikaate.
    # Vaikimisi väärtus on '$confdir/ssl'.
    ssldir = $vardir/ssl

[agent]
    # Fail, kuhu puppetd salvestab klasside nimekirja
    # seotud saadud konfiguratsiooniga.  Saab laadida
    # eraldi ''nukuke'' käivitatav fail, kasutades ''--loadclasses''
    # võimalus.
    # Vaikimisi väärtus on '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Kus nukk salvestab kohaliku konfiguratsiooni.  An
    # laiendus, mis näitab, et vahemälu formaat lisatakse automaatselt.
    # Vaikimisi väärtus on '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    server = puppetmaster.leju.com
    aruanne = tõene
    kuula = tõene
   
[root@puppetclient nuku]# vi namespaceauth.conf
[nukujooksja]
    Luba puppetmaster.leju.com
    luba *.leju.com
   
[root@puppetclient nukk]# vi autor.conf
Lisa viimasele reale luba *
......
tee /
autentimine
luba *

[root@puppetclient nuku]# CD
Täida nukk:
[root@puppetclient ~]# nukk --noop --test --jälgi --silus
Kui Puppet Master ei määra: autosign=true, tuleb see käivitada Puppet Masteris:
[root@puppetmaster ~]# nukutunnistus -l
puppetclient.leju.com
[root@puppetmaster ~]# nukutunnistus -s puppetclient.leju.com
Kirjuta puppetclient.leju.com nii. Seejärel mine tagasi kliendi juurde ja käivita siin:
[root@puppetclient ~]# nukk --noop --test --jälgi --silus
Liitu --noop, konfiguratsiooni ei rakendata tegelikult kliendil, peamiselt testimiseks, et näha, kas väljatrükis on vigu, ja käivitatakse ilma vigadeta:
[root@puppetclient ~]# nukk --test --jälg --silus

Vaata dokumenti:
[root@puppetclient ~]# ll /tmp/
kokku 8
-rw-r--r-- 1 juurjuur 11. veebruar 25 22:35 test.txt
Dokument on välja antud.

Võimalik on ka Puppet Masteri peale suruda:
[root@puppetmaster ~]# nukulöök -d --host puppetclient.leju.com
Vallandav puppetclient.leju.com
Staatuse saamine
Staatus on edu
puppetclient.leju.com lõpetanud väljumiskoodiga 0
Lõpetatud
Tagastatud 0 näitab, et kliendi nuku käivitati edukalt.

Pane nukk automaatseks käivitumiseks:
chkconfig --tase 2345 nukk peal

Muuda Puppetmaster, et kasutada Passenger
Passenger on Apache 2.x laiendus, mis võimaldab Apache raudtee- või rack-rakendusi käivitada. puppetmaster kasutab WEBricki failiteenuste pakkumiseks vaikimisi; kui sul on palju nukukliente, on puppetmasteri failiteenuse jõudlus kehv, et muuta puppetmaster tugevamaks, seega kasuta failiteenuste pakkumiseks Apache.

Paigaldus:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Passenger 2.2.2 RHEL5 töötab hästi.
Add foreman.repo repository:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[töödejuhataja]
name=Foremani stabiilne hoidla
baseurl=http://yum.theforeman.org/stable
gpgcheck=0
enabled=1
[root@puppetmaster ~]# yum install rubygem-passenger-2.2.2-1
[root@puppetmaster ~]# rubygem-rack-1.0.1-1
[root@puppetmaster ~]# reisija-paigalda-apache2-moodul

Apache SSL mooduli paigaldamine:
[root@puppetmaster ~]# mmm, paigalda mod_ssl

Puppet rack rakenduse seadistamiseks:
mkdir -p /jne/nukk/rack/puppetmasterd/
mkdir /etc/nuku/rack/puppetmasterd/avalik /jne/nuku/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
ReisijaRuby /usr/bin/ruby
ReisijaMaxPoolSuurus 30
Reisijate basseinTühikäigu aeg 1500
PassengerMaxRequests 1000
ReisijaStatThrottleRate 120
RackAutoDetect välja lülitatud
RailsAutoDetection välja lülitatud

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# Sa tahad ilmselt neid seadeid häälestada
PassengerHighPerformance peal
ReisijaMaxPoolSuurus 12
Reisijate basseinTühikäigu aeg 1500
# PassengerMaxRequests 1000
ReisijaStatThrottleRate 120
RackAutoDetect välja lülitatud
RailsAutoDetection välja lülitatud

Kuula 8140

<VirtualHost *:8140>
        SSLEngine on
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite KÕIK:! 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
        # Kui Apache kurdab CRL-is kehtetute allkirjade üle, võid proovida keelata
        # CRL-i kontrollimine, kommenteerides järgmist rida, aga seda ei soovitata.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient valikuline
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # Järgnevad kliendipäised võimaldavad sama konfiguratsiooni Poundiga töötada.
        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 /jne/nukk/rack/puppetmasterd/public/
        RackBaseURI /
        <Kataloog /jne/nukk/rack/nukumasterd/>
                Valikud puuduvad
                AllowOverride None
                Käsk lubada, keela
                luba kõigilt
        </Directory>
</VirtualHost>

Muuda nukumeistri konfiguratsioonifaili, et lisada järgmised kaks rida:
[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[meister]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
Muuda /etc/sysconfig/puppetmaster:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# Lisa lõppu järgmine rida:
PUPPETMASTER_EXTRA_OPTS="--aruannete pood"
Kui pead aru andma nii töödejuhatajale kui ka nukujuhtpaneelile, lisa järgmine rida:
PUPPETMASTER_EXTRA_OPTS="--teatab poest, töödejuhataja, puppet_dashboard"

Peata nukumeistri teenistus ja alusta apache-teenistust:
[root@puppetmaster ~]# /etc/init.d/puppetmaster peatus
[root@puppetmaster ~]# /etc/init.d/httpd start

Boot ei käivita puppetmasteri teenust, käivitamine käivitab httpd teenuse:
[root@puppetmaster ~]# chkconfig --tase 2345 nukumeister välja lülitatud
[root@puppetmaster ~]# chkconfig --tase 2345 httpd peal

Veendu, et port 8140 on lubatud:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
TCP 0 0 :::8140 :::* KUULA 9834/HTTPD

Testi kliendi poolel, kas vealogi on trükitud:
[root@puppetclient ~]# nukk --test --jälg --silus




Eelmine:php-fpm.conf olulised parameetrid on üksikasjalikult selgitatud
Järgmine:25. oktoobril 2014 (laupäeval) kell 23.00 testiti õhukaitse ja katastroofide ennetamise alarmi
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com