Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 8686|Svar: 0

Konfigurationsstyring: Dukkeinstallation og brug (1)

[Kopier link]
Opslået på 20/10/2014 09.47.45 | | |
1. Introduktion til Puppet

Systemadministratorer sidder ofte fast i en række gentagne opgaver: opgradering af pakker, håndtering af konfigurationsfiler, systemtjenester, cron-opgaver, tilføjelse af nye konfigurationer, rettelse af fejl osv. Disse opgaver er ofte gentagne og ineffektive, og den første reaktion på at løse dem er at automatisere dem, så brugerdefinerede scripts dukker op. På grund af miljøets kompleksitet udvikles brugerdefinerede scripts og applikationer gentagne gange og er vanskelige at få plads til flere platforme, og fleksibilitet og funktionalitet er svære at garantere, så automatiserede konfigurationsstyringsværktøjer som Puppet er opstået.

I open source-verdenen findes der mange konfigurationsværktøjer at vælge imellem, og nogle af nøgleprodukterne inden for dette område er:

    Puppet (http://puppet.reductivelabs.com/): Et konfigurationsstyringsværktøj skrevet i Ruby, som bruger C/S-arkitekturen til at konfigurere klienten i deklarativt sprog.
    Cfengine (http://www.cfengine.org): Et af de første open source konfigurationsværktøjer, der blev udgivet, udgivet i 1993, det er også en C/S-arkitektur, som normalt bruges i uddannelsesinstitutioner.
    LCFG(http://www.lcfg.org/): Et konfigurationsstyringsværktøj til C/S-arkitekturer, der bruger XML til at definere konfigurationer.
    Bcfg2: Et konfigurationsstyringsværktøj til C/S-arkitektur skrevet i Python, som bruger specifikationer og klientsvar til at konfigurere målværten.

Dette dokument er dedikeret til at beskrive, hvordan du bruger Puppet til at administrere din vært, applikationer, baggrundsprogrammer og forskellige tjenester.

Om Puppet:

1. Hvad bruges Puppet til?

Puppet er et open source, Ruby-baseret systemkonfigurationsstyringsværktøj, der er afhængigt af C/S-implementeringsarkitekturen. Hovedudvikleren er Luke Kanies, som følger GPLv2-ophavsretslicensen. Siden 1997 har Kanies været involveret i UNIX-systemadministration, og udviklingen af Puppet udsprang af denne erfaring. Utilfreds med de tilgængelige konfigurationsværktøjer begyndte Kanies at udvikle værktøjer i Reductive-laboratoriet mellem 2001 og 2005. Snart udgav Reductive Labs deres flagskibsprodukt, Puppet.

2. Kendetegn ved Pupput

Mange systemkonfigurationsstyringsværktøjer fungerer meget ens, såsom cfengine. Hvad gør Puppet unik?

Puppets syntaks tillader dig at oprette et separat script, der bygger en bruger på alle dine målværter. Alle målværter vil fortolke og eksekvere modulet på skift ved hjælp af den syntaks, der gælder for det lokale system. For eksempel, hvis denne konfiguration udføres på en Red Hat-server, opret en bruger ved hjælp af useradd-kommandoen; Hvis denne konfiguration udføres på en FreeBSD-host, bruges adduser-kommandoen.

Et andet bemærkelsesværdigt aspekt ved Puppet er dens fleksibilitet. På grund af open source-softwarens natur kan du frit få adgang til Puppets kildekode, og hvis du støder på problemer og har muligheden, kan du ændre eller forbedre Puppets kode, så den passer til dit miljø. Derudover fortsætter fællesskabsudviklere og donorer med at forbedre Puppets kapaciteter. Et stort fællesskab af udviklere og brugere er også engageret i at levere dokumentation og teknisk support til Puppet.

Puppet er også let at skalere. Brugerdefineret pakkeunderstøttelse og særlige systemmiljøkonfigurationer kan hurtigt og nemt tilføjes til Puppet-installationsprogrammet.

3. Dukkens arbejdstilstand

Puppet er et konfigurationsstyringsværktøj med C/S-arkitektur, der installerer puppet-server-pakken (kendt som Puppet master) på en central server. Installer Puppet-klientsoftwaren (kaldet Puppet Client) på den målhost, der skal administreres. Når klienten forbinder til Puppet masteren, bliver konfigurationsfilen, der er defineret på Puppet masteren, kompileret og derefter kørt på klienten. Som standard kommunikerer hver klient med serveren hver halve time for at bekræfte opdateringen af konfigurationsinformationen. Hvis der er ny konfigurationsinformation eller konfigurationsinformation er ændret, vil konfigurationen blive genkompileret og offentliggjort til hver klient til eksekvering. Du kan også aktivt udløse en opdatering af konfigurationsinformationen på serveren for at tvinge hver klient til at konfigurere den. Hvis klientens konfigurationsinformation ændres, kan den hente den oprindelige konfiguration fra serveren for at rette den.

Konfigurationsstyring: Dukkeinstallation og brug (1)


4. Dukkens fremtid

Endelig er Puppet et ungt værktøj, der stadig er under udvikling og udvikling. Puppet-fællesskabet vokser hurtigt, og mange nye idéer bliver konstant indarbejdet, hvilket fører til udvikling, opdateringer og moduler, der præsenteres hver dag.

2. Konfiguration og installation (Puppet 2.6.4 CentOS 5.4 installation):

Konfigurér repositoryet på puppet-serveren og klienten:
omdrejninger -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
Tilføj til:
[epel-dukke]
Navn=Epel Dukke
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
enabled=0
gpgcheck=0

Tilføj repositoryet puppet.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[dukketeater]
name=Puppet Labs pakker
baseurl=http://yum.puppetlabs.com/base/
enabled=0
gpgcheck=0

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

Ændr værter og tilføj følgende to poster:
[root@puppetmaster ~]# vi /osv/værter
192.168.0.10 puppetmaster.leju.com dukke
192.168.0.100 puppetclient.leju.com

Konfiguration af Puppet:
[root@puppetmaster ~]# cd /osv/dukke/
[root@puppetmaster dukke]# vi dukke.conf

[hoved]
    # Dukke-logbogen.
    # Standardværdien er '$vardir/log'.
    logdir = /var/log/puppet

    # Hvor Puppet PID-filer opbevares.
    # Standardværdien er '$vardir/run'.
    rundir = /var/run/puppet

    # Hvor SSL-certifikater opbevares.
    # Standardværdien er '$confdir/ssl'.
    ssldir = $vardir/ssl

[agent]
    # Filen, hvor Puppetd gemmer en liste over klasser
    # forbundet med den genvundne konfiguration.  Kan indlæses
    # den separate ''puppet''-eksekverbare fil ved brug af ''--loadclasses''
    # mulighed.
    # Standardværdien er '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Hvor Puppetd gemmer den lokale konfiguration.  En
    #-udvidelsen, der angiver, at cache-formatet tilføjes automatisk.
    # Standardværdien er '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    server = puppetmaster.leju.com
    rapport = sandt
    lyt = sandt

[mester]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    autosign = sandt
    Rapporter = butik
   
[root@puppetmaster dukke]# vi fileserver.conf
     [filer]
    sti /etc/puppet/files
    tillad *

[moduler]
    tillad *

[plugins]
    tillad *

[root@puppetmaster dukke]# mkdir /etc/puppet/files
   
[root@puppetmaster dukke]# CD-manifester/
Opret site.pp, som er dukkeindgangskonfigurationsfilen:
[root@puppetmaster manifesterer]# vi site.pp
importer "modules.pp"
importer "roles.pp"
importer "nodes.pp"

# Generelle indstillinger 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 }

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

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

Opret nodes.pp for at konfigurere servernoderne:
[root@puppetmaster manifesterer]# vi noder.pp
node 'basenode' {
        Inkluder baseklasse
}

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

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

[root@puppetmaster manifesterer]# CD ..
[root@puppetmaster dukke]# mkdir-moduler
Opret et 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/
Opret en testklasse til at levere en fil til klienten:
[root@puppetmaster manifesterer]# vi init.pp
Klassetest {
        fil { "/tmp/test.txt":
                ensure => præsenteret,
                gruppe => "rod",
                ejer => "rod",
                mode => "0644",
                kilde => "puppet:///test/test.txt"
        }
}

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

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

Ændr værter og tilføj følgende to poster:
[root@puppetclient ~]# vi /osv/værter
192.168.0.10 puppetmaster.leju.com dukke
192.168.0.100 puppetclient.leju.com

Konfiguration af dukken:
[root@puppetclient ~]# cd /osv/dukke/
[root@puppetclient dukke]# vi dukke.conf
[hoved]
    # Dukke-logbogen.
    # Standardværdien er '$vardir/log'.
    logdir = /var/log/puppet

    # Hvor Puppet PID-filer opbevares.
    # Standardværdien er '$vardir/run'.
    rundir = /var/run/puppet

    # Hvor SSL-certifikater opbevares.
    # Standardværdien er '$confdir/ssl'.
    ssldir = $vardir/ssl

[agent]
    # Filen, hvor Puppetd gemmer en liste over klasser
    # forbundet med den genvundne konfiguration.  Kan indlæses
    # den separate ''puppet''-eksekverbare fil ved brug af ''--loadclasses''
    # mulighed.
    # Standardværdien er '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Hvor Puppetd gemmer den lokale konfiguration.  En
    #-udvidelsen, der angiver, at cache-formatet tilføjes automatisk.
    # Standardværdien er '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    server = puppetmaster.leju.com
    rapport = sandt
    lyt = sandt
   
[root@puppetclient dukke]# vi namespaceauth.conf
[dukkeløber]
    Tillad puppetmaster.leju.com
    tillad *.leju.com
   
[root@puppetclient dukke]# vi auth.conf
Tilføj allow * til den sidste linje
......
Sti /
godkend enhver
tillad *

[root@puppetclient dukke]# cd
Udfør marionetten:
[root@puppetclient ~]# dukke --nej --test --trace --fejlfinding
Hvis Puppet Master ikke sætter: autosign=true, skal det udføres i Puppet Master:
[root@puppetmaster ~]# dukke-cert -l
puppetclient.leju.com
[root@puppetmaster ~]# dukkecert -s puppetclient.leju.com
Skriv puppetclient.leju.com sådan her. Gå derefter tilbage til klienten for at udføre her:
[root@puppetclient ~]# dukke --nej --test --trace --fejlfinding
Join --nej, konfigurationen vil ikke rigtig blive anvendt på klienten, men bruges primært til test, for at se om der er fejl i udskriften, og udfør uden fejl:
[root@puppetclient ~]# dukkestyret --test --trace --debug

Se dokumentet:
[root@puppetclient ~]# ll /tmp/
i alt 8
-rw-r--r-- 1 rodrod 11 feb 25 22:35 test.txt
Dokumentet er blevet udstedt.

Det er også muligt at presse på Puppet Master:
[root@puppetmaster ~]# dukkespark -d --vært puppetclient.leju.com
At udløse puppetclient.leju.com
At få status
Status er succes
puppetclient.leju.com færdig med udgangskode 0
Færdig
At returnere 0 indikerer, at puppetd på klienten blev udløst med succes.

Sæt dukken til at starte auto-start:
chkconfig --niveau 2345 dukke på

Modificerer dukkemester til at bruge Passager
Passenger er en udvidelse af Apache 2.x til kørsel af skinner eller tandstangsapplikationer i Apache. puppetmaster bruger WEBrick som standard til at levere filtjenester; hvis du har mange puppet-klienter, vil puppetmasters filserviceydelse være dårlig for at gøre puppetmaster mere robust, så brug Apache til at levere filtjenester.

Installation:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Passenger 2.2.2 RHEL5 fungerer fint.
Tilføj foreman.repo repository:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[formand]
name=Foreman stabilt repository
baseurl=http://yum.theforeman.org/stable
gpgcheck=0
enabled=1
[root@puppetmaster ~]# yum installer rubygem-passenger-2.2.2-1
[root@puppetmaster ~]# rubygem-rack-1.0.1-1
[root@puppetmaster ~]# passenger-install-apache2-module

Installation af Apache SSL-modulet:
[root@puppetmaster ~]# nam installer mod_ssl

For at konfigurere Puppet-rackapplikationen:
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
PassagerRuby /usr/bin/ruby
PassagerMaxPoolStørrelse 30
PassengerPoolIdleTime 1500
PassengerMaxRequests 1000
PassengerStatThrottleRate 120
RackAutoDetect Off
RailsAutoDetect Slukket

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# du vil sikkert justere disse indstillinger
PassagerHighPerformance på
PassagerMaxPoolStørrelse 12
PassengerPoolIdleTime 1500
# PassagerMaxAnmodninger 1000
PassengerStatThrottleRate 120
RackAutoDetect Off
RailsAutoDetect Slukket

Lyt 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 over ugyldige signaturer på CRL, kan du prøve at deaktivere
        # CRL tjekker ved at kommentere næste linje, men det anbefales ikke.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient valgfrit
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # Følgende klientheadere gør det muligt at bruge samme konfiguration 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 /
        <Mappe /etc/puppet/rack/puppetmasterd/>
                Muligheder Ingen
                TilladOverride Ingen
                Ordre tillad, afvis
                Tillad fra alle
        </Directory>
</VirtualHost>

Ændr puppetmaster-konfigurationsfilen for at tilføje 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
   
Ændr /etc/sysconfig/puppetmaster:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# Tilføj følgende linje til sidst:
PUPPETMASTER_EXTRA_OPTS="--rapporterer butik"
Hvis du skal rapportere til både foreman og puppet-dashboard, tilføj følgende linje:
PUPPETMASTER_EXTRA_OPTS="--rapporterer butik, formand, puppet_dashboard"

Stop dukkemestertjenesten og start apache-tjenesten:
[root@puppetmaster ~]# /etc/init.d/puppetmaster stop
[root@puppetmaster ~]# /etc/init.d/httpd start

Boot starter ikke puppetmaster-tjenesten, boot starter httpd-tjenesten:
[root@puppetmaster ~]# chkconfig --niveau 2345 dukkemester off
[root@puppetmaster ~]# chkconfig --level 2345 httpd on

Sørg for, at port 8140 er aktiveret:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
TCP 0 0 :::8140 :::* LYT 9834/httpd

Test på klientsiden for at se, om fejlloggen er printet:
[root@puppetclient ~]# dukkestyret --test --trace --debug




Tidligere:php-fpm.conf vigtige parametre forklares i detaljer
Næste:Den 25. oktober 2014 (lørdag) kl. 16 blev luftforsvars- og katastrofeforebyggelsesalarmen testet
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com