Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 8686|Svare: 0

Konfigurasjonsstyring: Dukkeinstallasjon og bruk (1)

[Kopier lenke]
Publisert på 20.10.2014 09:47:45 | | |
1. Introduksjon til Puppet

Systemadministratorer sitter ofte fast i en rekke repeterende oppgaver: oppgradering av pakker, håndtering av konfigurasjonsfiler, systemtjenester, cron-oppgaver, legge til nye konfigurasjoner, fikse feil osv. Disse oppgavene er ofte repetitive og ineffektive, og det første svaret på å løse dem er å automatisere dem, slik at egendefinerte skript dukker opp. På grunn av miljøets kompleksitet utvikles tilpassede skript og applikasjoner gjentatte ganger og det er vanskelig å tilpasse flere plattformer, og fleksibilitet og funksjonalitet er vanskelig å garantere, så automatiserte konfigurasjonsstyringsverktøy som Puppet har dukket opp.

I den åpne kildekode-verdenen finnes det mange konfigurasjonsverktøy å velge mellom, og noen av nøkkelproduktene på dette området er:

    Puppet (http://puppet.reductivelabs.com/): Et konfigurasjonsstyringsverktøy skrevet i Ruby som bruker C/S-arkitekturen til å konfigurere klienten i deklarativt språk.
    Cfengine (http://www.cfengine.org): Et av de første åpen kildekode-konfigurasjonsverktøyene som ble utgitt, utgitt i 1993, det er også en C/S-arkitektur, vanligvis brukt i utdanningsinstitusjoner.
    LCFG(http://www.lcfg.org/): Et konfigurasjonsstyringsverktøy for C/S-arkitekturer som bruker XML for å definere konfigurasjoner.
    Bcfg2: Et konfigurasjonsstyringsverktøy for C/S-arkitektur skrevet i Python som bruker spesifikasjoner og klientsvar for å konfigurere målverten.

Dette dokumentet er dedikert til å beskrive hvordan du bruker Puppet til å administrere verten din, applikasjoner, bakgrunnsprogrammer og ulike tjenester.

Om Puppet:

1. Hva brukes Puppet til?

Puppet er et åpen kildekode Ruby-basert systemkonfigurasjonsstyringsverktøy som er avhengig av C/S-distribusjonsarkitekturen. Hovedutvikleren er Luke Kanies, som følger GPLv2-opphavsrettslisensen. Siden 1997 har Kanies vært involvert i UNIX-systemadministrasjon, og utviklingen av Puppet sprang ut fra denne erfaringen. Ikke fornøyd med konfigurasjonsverktøyene som var tilgjengelige, begynte Kanies å utvikle verktøy i Reductive-laboratoriet mellom 2001 og 2005. Snart lanserte Reductive Labs sitt flaggskipprodukt, Puppet.

2. Egenskaper ved Pupput

Mange verktøy for systemkonfigurasjonsstyring fungerer veldig likt, som cfengine. Hva gjør Puppet unik?

Puppets syntaks lar deg lage et separat skript for å bygge en bruker på alle målvertene dine. Alle målverter vil tolke og kjøre modulen etter tur ved å bruke syntaksen som gjelder for det lokale systemet. For eksempel, hvis denne konfigurasjonen kjøres på en Red Hat-server, opprett en bruker med useradd-kommandoen; Hvis denne konfigurasjonen kjøres på en FreeBSD-vert, brukes adduser-kommandoen.

En annen bemerkelsesverdig egenskap ved Puppet er dens fleksibilitet. På grunn av åpen kildekode-programvare kan du fritt få tak i kildekoden til Puppet, og hvis du støter på problemer og har muligheten, kan du endre eller forbedre koden til Puppet for å passe miljøet ditt. I tillegg fortsetter samfunnsutviklere og givere å forbedre Puppets kapasiteter. Et stort fellesskap av utviklere og brukere er også forpliktet til å tilby dokumentasjon og teknisk støtte for Puppet.

Puppet er også lett å skalere. Støtte for tilpassede pakker og spesielle systemmiljøkonfigurasjoner kan raskt og enkelt legges til i Puppet-installasjonen.

3. Dukkens arbeidsmodus

Puppet er et konfigurasjonsstyringsverktøy for C/S-arkitektur som installerer puppet-server-pakken (kjent som Puppet master) på en sentral server. Installer Puppet-klientprogramvaren (kalt Puppet Client) på målverten som må administreres. Når klienten kobler seg til Puppet master, kompileres konfigurasjonsfilen som er definert på Puppet master og kjøres deretter på klienten. Som standard kommuniserer hver klient med serveren hver halvtime for å bekrefte oppdateringen av konfigurasjonsinformasjonen. Hvis det er ny konfigurasjonsinformasjon eller konfigurasjonsinformasjon har endret seg, vil konfigurasjonen bli rekompilert og publisert til hver klient for utførelse. Du kan også aktivt utløse en oppdatering av konfigurasjonsinformasjonen på serveren for å tvinge hver klient til å konfigurere den. Hvis klientens konfigurasjonsinformasjon endres, kan den hente den opprinnelige konfigurasjonen fra serveren for å rette den.

Konfigurasjonsstyring: Dukkeinstallasjon og bruk (1)


4. Fremtiden til Puppet

Til slutt er Puppet et ungt verktøy som fortsatt er under utvikling og utvikling. Puppet-fellesskapet vokser raskt, og mange nye ideer blir stadig innlemmet, noe som fører til utvikling, oppdateringer og moduler som presenteres hver dag.

2. Konfigurasjon og installasjon (Puppet 2.6.4 CentOS 5.4 installasjon):

Konfigurer repositoriet på dukkeserveren og klienten:
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
Legg til:
[epel-dukke]
Navn=Epel Dukke
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
aktivert=0
gpgcheck=0

Legg til repositoriet puppet.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[puppetlabs]
name=Puppet Labs-pakker
baseurl=http://yum.puppetlabs.com/base/
aktivert=0
gpgcheck=0

Installasjon av dukkemester:
[root@puppetmaster ~]# yum --enablerepo=epel,epel-puppet install puppet-server

Endre vertene og legg til følgende to poster:
[root@puppetmaster ~]# vi /osv/verter
192.168.0.10 puppetmaster.leju.com dukke
192.168.0.100 puppetclient.leju.com

Konfigurere Puppet:
[root@puppetmaster ~]# cd /etc/puppet/
[root@puppetmaster dukke]# vi dukke.conf

[hoved]
    # Dukkeloggkatalogen.
    # Standardverdien er '$vardir/log'.
    logdir = /var/log/puppet

    # Hvor Puppet PID-filer oppbevares.
    # Standardverdien er '$vardir/run'.
    rundir = /var/run/puppet

    # Hvor SSL-sertifikater oppbevares.
    # Standardverdien er '$confdir/ssl'.
    ssldir = $vardir/ssl

[agent]
    # Filen der Puppetd lagrer en liste over klassene
    # assosiert med den hentede konfigurasjonen.  Kan lastes inn
    # den separate ''puppet''-kjørbare filen som bruker ''--loadclasses''
    # Alternativ.
    # Standardverdien er '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Der Puppetd lagrer den lokale konfigurasjonen.  En
    #-utvidelsen som indikerer cache-formatet legges til automatisk.
    # Standardverdien er '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    server = puppetmaster.leju.com
    rapport = sant
    lytt = sant

[mester]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    autosign = sann
    Rapporter = Lagre
   
[root@puppetmaster puppet]# vi fileserver.conf
     [filer]
    sti /etc/puppet/files
    Tillat *

[moduler]
    Tillat *

[plugins]
    Tillat *

[root@puppetmaster dukke]# mkdir /etc/puppet/files
   
[root@puppetmaster dukke]# CD-manifestasjoner/
Create site.pp, som er konfigurasjonsfilen for dukkeoppføringen:
[root@puppetmaster manifesterer]# vi site.pp
importer "modules.pp"
importer "roles.pp"
importer "nodes.pp"

# Generelle innstillinger for standardtyper
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

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

Opprett modules.pp for å importere moduler:
[root@puppetmaster manifesterer]# vi moduler.pp
import "test"

Opprett roles.pp for å definere serverroller:
[root@puppetmaster manifesterer]# vi roller.pp
Klasse baseklasse {
        Inkluder test
}

Opprett nodes.pp for å konfigurere servernodene:
[root@puppetmaster manifesterer]# vi nodes.pp
node 'basenode' {
        Inkluder baseklasse
}

Node 'puppetclient.leju.com' arver basenode {
        tag("test")
}

Node 'puppetmaster.leju.com' arver basenode {
        tag("test")
}

[root@puppetmaster manifesterer seg]# CD ..
[root@puppetmaster dukke]# mkdir-moduler
Lag en testmodul:
[root@puppetmaster moduler]# mkdir -p test/manifests/
[root@puppetmaster moduler]# mkdir test/filer/
[root@puppetmaster moduler]# CD-test/filer/
[root@puppetmaster filer]# vi test.txt
Testlinje!
[root@puppetmaster filer]# CD .. /manifester/
Lag en testklasse for å levere en fil til klienten:
[root@puppetmaster manifesterer seg]# vi init.pp
Klassetest {
        fil { "/tmp/test.txt":
                ensure => til stede,
                gruppe => "rot",
                eier => "rot",
                modus => "0644",
                kilde => "puppet:///test/test.txt"
        }
}

Lansering av Puppet Master:
[root@puppetmaster manifesterer]# /etc/init.d/puppetmaster start
Sørg for at port 8140 er oppe.

Installasjon av dukkeklient:
[root@puppetclient ~]# yum --enablerepo="epel,epel-puppet" install puppet

Endre vertene og legg til følgende to poster:
[root@puppetclient ~]# vi /osv/verter
192.168.0.10 puppetmaster.leju.com dukke
192.168.0.100 puppetclient.leju.com

Konfigurasjon av dukken:
[root@puppetclient ~]# CD /osv/dukketeater/
[root@puppetclient dukke]# vi dukke.conf
[hoved]
    # Dukkeloggkatalogen.
    # Standardverdien er '$vardir/log'.
    logdir = /var/log/puppet

    # Hvor Puppet PID-filer oppbevares.
    # Standardverdien er '$vardir/run'.
    rundir = /var/run/puppet

    # Hvor SSL-sertifikater oppbevares.
    # Standardverdien er '$confdir/ssl'.
    ssldir = $vardir/ssl

[agent]
    # Filen der Puppetd lagrer en liste over klassene
    # assosiert med den hentede konfigurasjonen.  Kan lastes inn
    # den separate ''puppet''-kjørbare filen som bruker ''--loadclasses''
    # Alternativ.
    # Standardverdien er '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Der Puppetd lagrer den lokale konfigurasjonen.  En
    #-utvidelsen som indikerer cache-formatet legges til automatisk.
    # Standardverdien er '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    server = puppetmaster.leju.com
    rapport = sant
    lytt = sant
   
[root@puppetclient dukke]# vi namespaceauth.conf
[dukkeløper]
    Tillat puppetmaster.leju.com
    tillat *.leju.com
   
[root@puppetclient dukke]# vi auth.conf
Legg til allow * på siste linje
......
Sti /
godkjenning
Tillat *

[root@puppetclient dukke]# CD
Henrette dukken:
[root@puppetclient ~]# puppetd --noop --test --trace --debug
Hvis Puppet Master ikke setter: autosign=true, må det utføres i Puppet Master:
[root@puppetmaster ~]# dukke-cert -l
puppetclient.leju.com
[root@puppetmaster ~]# dukke-cert -s puppetclient.leju.com
Signer puppetclient.leju.com slik. Gå deretter tilbake til klienten for å kjøre her:
[root@puppetclient ~]# puppetd --noop --test --trace --debug
Join --noop, konfigurasjonen vil egentlig ikke bli brukt på klienten, hovedsakelig brukt til testing, for å se om det er feil i utskriften, og utføres uten feil:
[root@puppetclient ~]# Dukke --test --spor --debug

Se dokumentet:
[root@puppetclient ~]# ll /tmp/
totalt 8
-rw-r--r-- 1 rotrot 11. feb 25 22:35 test.txt
Dokumentet er utstedt.

Det er også mulig å presse på Puppet Master:
[root@puppetmaster ~]# dukkespark -d --vert puppetclient.leju.com
Utløsende puppetclient.leju.com
Å få status
Status er suksess
puppetclient.leju.com avsluttet med utgangskode 0
Ferdig
Å returnere 0 indikerer at dukken på klienten ble utløst med suksess.

Sett dukken til oppstart med autostart:
chkconfig --nivå 2345 dukke på

Modifiser dukkemesteren til å bruke Passasjer
Passenger er en utvidelse av Apache 2.x for kjøring av skinner eller tannstangapplikasjoner i Apache. puppetmaster bruker WEBrick til å tilby filtjenester som standard, hvis du har mange puppet-klienter, vil puppetmasters filtjenesteytelse være dårlig for å gjøre puppetmaster mer robust, så bruk Apache til å tilby filtjenester.

Installasjon:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Passasjer 2.2.2 RHEL5 fungerer fint.
Legg til foreman.repo repository:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[formann]
navn=Foreman stabilt arkiv
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 ~]# passenger-install-apache2-module

Installasjon av Apache SSL-modulen:
[root@puppetmaster ~]# nam installer mod_ssl

For å konfigurere Puppet rack-applikasjonen:
mkdir -p /etc/puppet/rack/puppetmasterd/
mkdir /etc/puppet/rack/puppetmasterd/public /etc/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 /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
PassasjerRuby /usr/bin/ruby
PassasjerMaxBassengStørrelse 30
PassengerPoolIdleTime 1500
PassasjerMaxForespørsler 1000
PassengerStatThrottleRate 120
RackAutoDetect Av
RailsAutoDetect Av

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# Du vil sannsynligvis justere disse innstillingene
Passasjerhøyytelse på
PassasjerMaxBassengStørrelse 12
PassengerPoolIdleTime 1500
# PassasjerMaxForespørsler 1000
PassengerStatThrottleRate 120
RackAutoDetect Av
RailsAutoDetect Av

Lytt 8140

<VirtualHost *:8140>
        SSLEngine på
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite ALLE:! 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
        # Hvis Apache klager på ugyldige signaturer på CRL, kan du prøve å deaktivere
        # CRL sjekker ved å kommentere neste linje, men dette anbefales ikke.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient valgfritt
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # Følgende klientheadere tillater samme konfigurasjon å fungere med 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 /etc/puppet/rack/puppetmasterd/public/
        RackBaseURI /
        <Katalog /etc/puppet/rack/puppetmasterd/>
                Alternativer Ingen
                TillatOverstyring Ingen
                Ordre tillatt, nekt
                Tillat fra alle
        </Directory>
</VirtualHost>

Endre puppetmaster-konfigurasjonsfilen for å legge til følgende to linjer:
[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[mester]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
Endre /etc/sysconfig/puppetmaster:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# Legg til følgende linje på slutten:
PUPPETMASTER_EXTRA_OPTS="--rapporterer butikk"
Hvis du må rapportere til både formann og dukke-dashboard, legg til følgende linje:
PUPPETMASTER_EXTRA_OPTS="--rapporterer butikk, formann, puppet_dashboard"

Stopp puppetmaster-tjenesten og start apache-tjenesten:
[root@puppetmaster ~]# /etc/init.d/puppetmaster stopp
[root@puppetmaster ~]# /etc/init.d/httpd start

Oppstart starter ikke Puppetmaster-tjenesten, oppstart starter httpd-tjenesten:
[root@puppetmaster ~]# chkconfig --nivå 2345 dukkemester av
[root@puppetmaster ~]# chkconfig --level 2345 httpd on

Sørg for at port 8140 er aktivert:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
tcp 0 0 :::8140 :::* HØR 9834/httpd

Test på klientsiden for å se om feilloggen er skrevet ut:
[root@puppetclient ~]# Dukke --test --spor --debug




Foregående:php-fpm.conf viktige parametere forklares i detalj
Neste:Den 25. oktober 2014 (lørdag), klokken 16.00, ble luftforsvars- og katastrofeforebyggingsalarmen testet
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com