Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 8686|Vastaus: 0

Konfiguraation hallinta: Nukkejen asennus ja käyttö (1)

[Kopioi linkki]
Julkaistu 20.10.2014 9.47.45 | | |
1. Johdatus nukkeen

Järjestelmänvalvojat ovat usein jumissa toistuvien tehtävien parissa: pakettien päivittämisessä, konfiguraatiotiedostojen, järjestelmäpalveluiden, cron-tehtävien, uusien asetusten lisäämisessä, bugien korjaamisessa jne. Nämä tehtävät ovat usein toistuvia ja tehottomia, ja ensimmäinen ratkaisu on automatisoida ne, jolloin mukautetut skriptit ilmestyvät. Ympäristön monimutkaisuuden vuoksi räätälöityjä skriptejä ja sovelluksia kehitetään toistuvasti, ja ne ovat vaikeita sovittaa useille alustoille, ja joustavuutta ja toiminnallisuutta on vaikea taata, joten automatisoidut konfiguraationhallintatyökalut kuten Puppet ovat syntyneet.

Avoimen lähdekoodin maailmassa on monia konfigurointityökaluja, joista valita, ja tämän alan keskeisiä tuotteita ovat:

    Puppet (http://puppet.reductivelabs.com/): Ruby-kielellä kirjoitettu konfiguraationhallintatyökalu, joka käyttää C/S-arkkitehtuuria konfiguroidakseen asiakkaan deklaratiivisella kielellä.
    Cfengine (http://www.cfengine.org): Yksi ensimmäisistä avoimen lähdekoodin konfigurointityökaluista, julkaistu vuonna 1993, se on myös C/S-arkkitehtuuri, jota käytetään yleensä oppilaitoksissa.
    LCFG(http://www.lcfg.org/): Konfiguraationhallintatyökalu C/S-arkkitehtuureille, joka käyttää XML:ää konfiguraation määrittämiseen.
    Bcfg2: Pythonilla kirjoitettu konfiguraationhallintatyökalu C/S-arkkitehtuurille, joka käyttää määrittelyjä ja asiakasvastauksia kohdepalvelimen konfigurointiin.

Tämä dokumentti on omistettu kuvaamaan, miten Puppetia käytetään isäntäkoneen, sovellusten, taustaohjelmien ja erilaisten palveluiden hallintaan.

Tietoa Puppetista:

1. Mihin Puppetia käytetään?

Puppet on avoimen lähdekoodin Ruby-pohjainen järjestelmän konfiguraation hallintatyökalu, joka perustuu C/S-käyttöönoton arkkitehtuuriin. Pääkehittäjä on Luke Kanies, joka noudattaa GPLv2-tekijänoikeuslisenssiä. Vuodesta 1997 lähtien Kanies on ollut mukana UNIX-järjestelmän hallinnassa, ja Puppetin kehitys sai alkunsa tästä kokemuksesta. Koska Kanies ei ollut tyytyväinen käytettävissä oleviin konfigurointityökaluihin, hän alkoi kehittää työkaluja Reductive-laboratoriossa vuosina 2001–2005. Pian Reductive Labs julkaisi lippulaivatuotteensa, Puppetin.

2. Pupputin ominaisuudet

Monet järjestelmän konfiguraation hallintatyökalut toimivat hyvin samalla tavalla, kuten cfengine. Mikä tekee Puppetista ainutlaatuisen?

Puppetin syntaksin avulla voit luoda erillisen skriptin, jolla voit rakentaa käyttäjän kaikille kohdeisännöillesi. Kaikki kohdeisännät tulkitsevat ja suorittavat moduulin vuorollaan paikallisen järjestelmän syntaksin mukaisesti. Esimerkiksi, jos tämä konfiguraatio suoritetaan Red Hat -palvelimella, luo käyttäjä useradd-komennolla; Jos tämä konfiguraatio suoritetaan FreeBSD-isäntällä, käytetään adduser-komentoa.

Toinen merkittävä piirre Puppetissa on sen joustavuus. Avoimen lähdekoodin ohjelmiston luonteen vuoksi voit vapaasti hankkia Puppetin lähdekoodin, ja jos kohtaat ongelmia ja sinulla on mahdollisuus, voit muokata tai parantaa Puppetin koodia ympäristöösi sopivaksi. Lisäksi yhteisön kehittäjät ja lahjoittajat jatkavat Puppetin kykyjen kehittämistä. Laaja kehittäjä- ja käyttäjäyhteisö on myös sitoutunut tarjoamaan dokumentaatiota ja teknistä tukea Puppetille.

Nukke on myös helppo skaalata. Mukautettu pakettituki ja erityiset järjestelmäympäristön asetukset voidaan lisätä nopeasti ja helposti Puppet -asennusohjelmaan.

3. Nuken toimintatila

Puppet on C/S-arkkitehtuurin konfiguraation hallintatyökalu, joka asentaa nukke-palvelinpaketin (tunnetaan nimellä Puppet master) keskitetylle palvelimelle. Asenna Puppet client -ohjelmisto (nimeltään Puppet Client) kohdepalvelimelle, jota täytyy hallita. Kun asiakas yhdistää Puppet masteriin, Puppet-masterille määritelty konfiguraatiotiedosto käännetään ja suoritetaan asiakkaalla. Oletuksena jokainen asiakas kommunikoi palvelimen kanssa puolen tunnin välein vahvistaakseen konfiguraatiotietojen päivityksen. Jos konfiguraatiotiedot tai konfiguraatiotiedot ovat muuttuneet, konfiguraatio käännetään uudelleen ja julkaistaan jokaiselle asiakkaalle suoritettavaksi. Voit myös aktiivisesti käynnistää palvelimen konfiguraatiotietojen päivityksen pakottaaksesi jokaisen asiakkaan konfiguroimaan sen. Jos asiakkaan konfiguraatiotiedot muuttuvat, se voi hakea alkuperäisen konfiguraation palvelimelta korjatakseen ne.

Konfiguraation hallinta: Nukkejen asennus ja käyttö (1)


4. Puppetin tulevaisuus

Lopuksi, Puppet on nuori työkalu, joka on vielä kehitteillä ja kehityksessä. Nukkeyhteisö kasvaa nopeasti, ja monia uusia ideoita otetaan jatkuvasti mukaan, mikä kannustaa kehitykseen, päivityksiin ja moduuleihin päivittäin.

2. Konfigurointi ja asennus (Puppet 2.6.4 CentOS 5.4 -asennus):

Määritä tietovarasto nukkepalvelimella ja asiakkaalla:
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
Lisää:
[epel-nukke]
nimi=epel-nukke
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
enabled=0
gpgcheck=0

Lisää repositorio puppet.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[nukkeja]
name=Puppet Labs -paketit
baseurl=http://yum.puppetlabs.com/base/
enabled=0
gpgcheck=0

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

Muokkaa isäntiä ja lisää seuraavat kaksi tietuetta:
[root@puppetmaster ~]# vi /etc/isännät
192.168.0.10 puppetmaster.leju.com nukke
192.168.0.100 puppetclient.leju.com

Nuken konfigurointi:
[root@puppetmaster ~]# cd /etc/nukke/
[root@puppetmaster nukke]# vi nukke.conf

[pääasiallinen]
    # Nukkekirjahakemisto.
    # Oletusarvo on '$vardir/log'.
    logdir = /var/log/nukke

    # Missä Puppet PID -tiedostoja säilytetään.
    # Oletusarvo on '$vardir/run'.
    rundir = /var/juokse/nukke

    # Missä SSL-sertifikaatteja säilytetään.
    # Oletusarvo on '$confdir/ssl'.
    ssldir = $vardir/ssl

[agentti]
    # Tiedosto, johon puppetd tallentaa luettelon luokista
    # liitetty haettuun konfiguraatioon.  Voidaan ladata sisään
    # erillinen ''nukke''-suoritettava tiedosto käyttäen ''-loadclasses''
    # vaihtoehto.
    # Oletusarvo on '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Missä nukke tallentaa paikallisen kokoonpanon.  An
    # laajennus, joka osoittaa, että välimuistimuoto lisätään automaattisesti.
    # Oletusarvo on '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    palvelin = puppetmaster.leju.com
    raportti = tosi
    kuuntele = tosi

[mestari]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    autosign = tosi
    raportit = kauppa
   
[root@puppetmaster nukke]# vi fileserver.conf
     [tiedostot]
    path /etc/puppet/files
    salli *

[moduulit]
    salli *

[pluginit]
    salli *

[root@puppetmaster nukke]# mkdir /etc/nukke/tiedostot
   
[root@puppetmaster nukke]# CD ilmestyy/
Luo site.pp, joka on nukkemerkinnän konfiguraatiotiedosto:
[root@puppetmaster manifestoi]# vi site.pp
Tuo "modules.pp"
tuo "roles.pp"
Tuo "nodes.pp"

# Yleiset asetukset standardityypeille
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

filebucket { pää: palvelin => "puppetmaster.leju.com" }
Tiedosto { backup => main }

Luo modules.pp moduulien tuomiseksi:
[root@puppetmaster manifestit]# vi modules.pp
tuo "testi"

Luo roles.pp palvelimen roolien määrittämiseksi:
[root@puppetmaster manifestoi]# vi roles.pp
class baseclass {
        include testi
}

Luo nodes.pp määrittääksesi palvelinsolmut:
[root@puppetmaster manifestoi]# vi nodes.pp
solmu 'basenode' {
        include baseclass
}

solmu 'puppetclient.leju.com' perii basenode {
        tag("testi")
}

solmu 'puppetmaster.leju.com' perii basenoden {
        tag("testi")
}

[root@puppetmaster ilmestyy]# cd ..
[root@puppetmaster nukke]# mkdir-moduulit
Luo testimoduuli:
[root@puppetmaster moduulit]# mkdir -p testi/manifestit/
[root@puppetmaster moduulit]# mkdir testi/tiedostot/
[root@puppetmaster moduulit]# cd-testi/tiedostot/
[root@puppetmaster tiedostot]# vi test.txt
Testilinja!
[root@puppetmaster tiedostot]# cd .. /manifestoi/
Luo testiluokka, joka toimittaa tiedoston asiakkaalle:
[root@puppetmaster ilmenee]# vi init.pp
luokkatesti {
        tiedosto { "/tmp/test.txt":
                ensure => läsnä,
                ryhmä => "juuri",
                omistaja => "juuri",
                mode => "0644",
                lähde => "puppet:///test/test.txt"
        }
}

Puppet Masterin lanseeraus:
[root@puppetmaster ilmestyy]# /etc/init.d/puppetmaster aloita
Varmista, että portti 8140 on päällä.

Nukkeasiakasasennus:
[root@puppetclient ~]# yum --enablerepo="epel,epel-nukke" asenna nukke

Muokkaa isäntiä ja lisää seuraavat kaksi tietuetta:
[root@puppetclient ~]# vi /etc/isännät
192.168.0.10 puppetmaster.leju.com nukke
192.168.0.100 puppetclient.leju.com

Nuken konfigurointi:
[root@puppetclient ~]# cd /etc/puppet/
[root@puppetclient nukke]# vi nukke.conf
[pääasiallinen]
    # Nukkekirjahakemisto.
    # Oletusarvo on '$vardir/log'.
    logdir = /var/log/nukke

    # Missä Puppet PID -tiedostoja säilytetään.
    # Oletusarvo on '$vardir/run'.
    rundir = /var/juokse/nukke

    # Missä SSL-sertifikaatteja säilytetään.
    # Oletusarvo on '$confdir/ssl'.
    ssldir = $vardir/ssl

[agentti]
    # Tiedosto, johon puppetd tallentaa luettelon luokista
    # liitetty haettuun konfiguraatioon.  Voidaan ladata sisään
    # erillinen ''nukke''-suoritettava tiedosto käyttäen ''-loadclasses''
    # vaihtoehto.
    # Oletusarvo on '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Missä nukke tallentaa paikallisen kokoonpanon.  An
    # laajennus, joka osoittaa, että välimuistimuoto lisätään automaattisesti.
    # Oletusarvo on '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    palvelin = puppetmaster.leju.com
    raportti = tosi
    kuuntele = tosi
   
[root@puppetclient nukke]# vi namespaceauth.conf
[nukkejuoksija]
    salli puppetmaster.leju.com
    salli *.leju.com
   
[root@puppetclient nukke]# vi auth.conf
Lisää salli * viimeiselle riville
......
polku /
Auth any
salli *

[root@puppetclient nukke]# cd
Toteuta nukke:
[root@puppetclient ~]# nukke --noop --testi --jäljitys --debug
Jos Puppet Master ei aseta: autosign=true, se täytyy suorittaa Puppet Masterissa:
[root@puppetmaster ~]# nukkesertifikaatti -l
puppetclient.leju.com
[root@puppetmaster ~]# Nukkesertifikaatti -s puppetclient.leju.com
Viittomalla puppetclient.leju.com näin. Palaa sitten asiakkaalle suorittamaan tästä:
[root@puppetclient ~]# nukke --noop --testi --jäljitys --debug
Liity --noop, konfiguraatiota ei oikeastaan sovelleta asiakkaalle, vaan käytetään pääasiassa testaukseen, jotta tulosteessa löytyykö virheitä, ja suoritus virheettömästi:
[root@puppetclient ~]# nukke --testi --jäljitys --debug

Katso asiakirja:
[root@puppetclient ~]# ll /tmp/
yhteensä 8
-rw-r--r-- 1 juurjuuri 11. helmikuuta 25 22:35 test.txt
Asiakirja on julkaistu.

On myös mahdollista painostaa Puppet Masteria:
[root@puppetmaster ~]# nukkepotku -d --isäntä puppetclient.leju.com
Laukaiseva puppetclient.leju.com
Statuksen saaminen
Status on menestystä
puppetclient.leju.com päättynyt exit-koodilla 0
Valmis
Palautus 0 tarkoittaa, että asiakkaan nukke aktivoitiin onnistuneesti.

Aseta nukke käynnistymään automaattisesti:
chkconfig --taso 2345 nukke päällä

Muokkaa Puppetmasteria käyttämään Passenger
Passenger on Apache 2.x:n laajennus rails- tai rack-sovelluksiin Apacessa. Puppetmaster käyttää WEBrickiä tiedostopalveluiden tarjoamiseen oletuksena; jos sinulla on paljon nukkeasiakasta, Puppetmasterin tiedostopalvelu on heikko, jotta Puppetmasterin suorituskyky olisi kestävämpi, joten käytä Apachea tiedostopalveluiden tarjoamiseen.

Asennus:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Matkustaja 2.2.2 RHEL5 toimii hyvin.
Add foreman.repo repository:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[työnjohtaja]
name=Foremanin stabiilivarasto
baseurl=http://yum.theforeman.org/stable
gpgcheck=0
enabled=1
[root@puppetmaster ~]# yum asenna rubygem-passenger-2.2.2-1
[root@puppetmaster ~]# rubygem-rack-1.0.1-1
[root@puppetmaster ~]# matkustaja-asennus-apache2-moduuli

Apache SSL -moduulin asentaminen:
[root@puppetmaster ~]# nam asenna mod_ssl

Puppet rack -sovelluksen konfigurointi:
mkdir -p /etc/nukke/räkki/nukkemasterd/
mkdir /etc/nukke/räkki/puppetmasterd/julkinen /jne. nukke/räkki/nukkemasterd/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
MatkustajaRuby /usr/bin/ruby
MatkustajaMaxPoolKoko 30
MatkustajaPoolIdleTime 1500
PassengerMaxRequests 1000
MatkustajaStatThrottleRate 120
RackAutoDetect pois päältä
RailsAutoDetect pois päältä

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# Todennäköisesti haluat säätää näitä asetuksia
MatkustajaHighPerformance päällä
MatkustajaMaxPoolKoko 12
MatkustajaPoolIdleTime 1500
# PassengerMaxRequests 1000
MatkustajaStatThrottleRate 120
RackAutoDetect pois päältä
RailsAutoDetect pois päältä

Kuuntele 8140

<VirtualHost *:8140>
        SSLEngine päällä
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite KAIKKI:! 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
        # Jos Apache valittaa virheellisestä allekirjoituksesta CRL:ssä, voit kokeilla poistaa käytöstä
        # CRL-tarkistus kommentoimalla seuraavaa riviä, mutta tätä ei suositella.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient optional
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # Seuraavat asiakasotsikot mahdollistavat saman konfiguraation toimimisen Poundin kanssa.
        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 /etc/nukke/rack/puppetmasterd/julkinen/
        RackBaseURI /
        <Hakemisto /etc/nukke/rack/puppetmasterd/>
                Vaihtoehdot Ei
                AllowOverride None
                Käsky sallia, kieltä
                salli kaikilta
        </Directory>
</VirtualHost>

Muokkaa nukkemestarin konfiguraatiotiedostoa lisäämällä seuraavat kaksi riviä:
[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[mestari]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
Muokkaa /etc/sysconfig/puppetmasteria:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# Lisää seuraava rivi loppuun:
PUPPETMASTER_EXTRA_OPTS="--raporttien kauppa"
Jos sinun täytyy raportoida sekä työnjohtajalle että nukkekojelaudalle, lisää seuraava rivi:
PUPPETMASTER_EXTRA_OPTS="--raportoi kaupasta, työnjohtajasta, puppet_dashboard"

Pysäytä nukkemestaripalvelu ja aloita apache-palvelu:
[root@puppetmaster ~]# /etc/init.d/Puppetmaster pysähdy.
[root@puppetmaster ~]# /etc/init.d/httpd start

Käynnistys ei käynnistä nukkemestaripalvelua, käynnistys käynnistää httpd-palvelun:
[root@puppetmaster ~]# chkconfig --taso 2345 nukkemestari pois päältä
[root@puppetmaster ~]# chkconfig --taso 2345 httpd päällä

Varmista, että portti 8140 on käytössä:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
TCP 0 0 :::8140 :::* KUUNTELE 9834/HTTPD

Testaa asiakaspuolella, onko virheloki tulostettu:
[root@puppetclient ~]# nukke --testi --jäljitys --debug




Edellinen:php-fpm.conf Tärkeät parametrit selitetään yksityiskohtaisesti
Seuraava:25. lokakuuta 2014 (lauantaina) klo 23 testattiin ilmatorjunta- ja katastrofiehkäisyhälytys
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com