Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 8686|Svar: 0

Konfigurationshantering: Dockinstallation och användning (1)

[Kopiera länk]
Publicerad på 2014-10-20 09:47:45 | | |
1. Introduktion till Puppet

Systemadministratörer fastnar ofta i en serie repetitiva uppgifter: uppgradera paket, hantera konfigurationsfiler, systemtjänster, cron-uppgifter, lägga till nya konfigurationer, fixa buggar, etc. Dessa uppgifter är ofta repetitiva och ineffektiva, och det första svaret på att lösa dem är att automatisera dem, så att anpassade skript dyker upp. På grund av miljöns komplexitet utvecklas anpassade skript och applikationer upprepade gånger och det är svårt att passa flera plattformar, och flexibilitet och funktionalitet är svåra att garantera, så automatiserade konfigurationshanteringsverktyg som Puppet har dykt upp.

I den öppna källkodsvärlden finns det många konfigurationsverktyg att välja mellan, och några av nyckelprodukterna inom detta område är:

    Puppet (http://puppet.reductivelabs.com/): Ett konfigurationshanteringsverktyg skrivet i Ruby som använder C/S-arkitekturen för att konfigurera klienten i deklarativt språk.
    Cfengine (http://www.cfengine.org): Ett av de första open source-konfigurationsverktygen som släpptes, släppt 1993, det är också en C/S-arkitektur, vanligtvis använd i utbildningsinstitutioner.
    LCFG(http://www.lcfg.org/): Ett konfigurationshanteringsverktyg för C/S-arkitekturer som använder XML för att definiera konfigurationer.
    Bcfg2: Ett konfigurationshanteringsverktyg för C/S-arkitektur skrivet i Python som använder specifikationer och klientsvar för att konfigurera målvärden.

Detta dokument är tillägnat att beskriva hur du använder Puppet för att hantera din värd, applikationer, bakgrundsprogram och olika tjänster.

Om Puppet:

1. Vad används Puppet till?

Puppet är ett öppen källkodsverktyg för systemkonfigurationshantering baserat på Ruby som bygger på C/S-distributionsarkitekturen. Huvudutvecklaren är Luke Kanies, som följer GPLv2-upphovsrättslicensen. Sedan 1997 har Kanies varit involverad i UNIX-systemadministration, och utvecklingen av Puppet har sitt ursprung i denna erfarenhet. Inte nöjda med de konfigurationsverktyg som fanns tillgängliga började Kanies utveckla verktyg i Reductive-labbet mellan 2001 och 2005. Snart släppte Reductive Labs sin flaggskeppsprodukt, Puppet.

2. Egenskaper hos Pupput

Många systemkonfigurationshanteringsverktyg fungerar mycket liknande, såsom cfengine. Vad gör Puppet unik?

Puppets syntax låter dig skapa ett separat skript för att bygga en användare på alla dina målvärdar. Alla målvärdar kommer att tolka och köra modulen i tur och ordning med hjälp av syntaxen som gäller för det lokala systemet. Till exempel, om denna konfiguration körs på en Red Hat-server, skapa en användare med kommandot useradd; Om denna konfiguration körs på en FreeBSD-värd används adduser-kommandot.

En annan anmärkningsvärd aspekt av Puppet är dess flexibilitet. På grund av öppen källkod kan du fritt få tillgång till källkoden till Puppet, och om du stöter på problem och har möjlighet kan du modifiera eller förbättra koden i Puppet för att passa din miljö. Dessutom fortsätter samhällsutvecklare och givare att förbättra Puppets kapacitet. En stor gemenskap av utvecklare och användare är också engagerade i att tillhandahålla dokumentation och tekniskt stöd för Puppet.

Puppet är också lätt att skala. Stöd för anpassade paket och särskilda systemmiljökonfigurationer kan snabbt och enkelt läggas till i Puppet-installationsprogrammet.

3. Dockans arbetsläge

Puppet är ett konfigurationshanteringsverktyg för C/S-arkitektur som installerar puppet-server-paketet (känt som Puppet master) på en central server. Installera Puppet-klientprogramvaran (kallad Puppet Client) på målvärden som behöver hanteras. När klienten ansluter till Puppet master kompileras konfigurationsfilen som definieras på Puppet master och körs sedan på klienten. Som standard kommunicerar varje klient med servern var trettionde minut för att bekräfta uppdateringen av konfigurationsinformationen. Om det finns ny konfigurationsinformation eller om konfigurationsinformation har ändrats, kommer konfigurationen att kompileras om och publiceras till varje klient för exekvering. Du kan också aktivt trigga en uppdatering av konfigurationsinformationen på servern för att tvinga varje klient att konfigurera den. Om klientens konfigurationsinformation ändras kan den hämta den ursprungliga konfigurationen från servern för att korrigera den.

Konfigurationshantering: Dockinstallation och användning (1)


4. Dockans framtid

Slutligen är Puppet ett ungt verktyg som fortfarande är under utveckling och utveckling. Dockgemenskapen växer snabbt och många nya idéer införlivas ständigt, vilket leder till utveckling, uppdateringar och moduler som presenteras varje dag.

2. Konfiguration och installation (Puppet 2.6.4 CentOS 5.4-installation):

Konfigurera arkivet på dockservern och klienten:
varvtal -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
Lägg till i:
[epel-docka]
Namn=Epel Docka
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
aktiverad=0
gpgcheck=0

Lägg till arkivet puppet.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[docklaboratorier]
name=Puppet Labs-paket
baseurl=http://yum.puppetlabs.com/base/
aktiverad=0
gpgcheck=0

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

Modifiera värdar och lägg till följande två poster:
[root@puppetmaster ~]# vi /etc/hosts
192.168.0.10 puppetmaster.leju.com docka
192.168.0.100 puppetclient.leju.com

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

[huvud]
    # Dockloggkatalogen.
    # Standardvärdet är '$vardir/log'.
    logdir = /var/log/puppet

    # Där Puppet PID-filer förvaras.
    # Standardvärdet är '$vardir/run'.
    rundir = /var/run/puppet

    # Där SSL-certifikat förvaras.
    # Standardvärdet är '$confdir/ssl'.
    ssldir = $vardir/SSL

[agent]
    # Filen där Puppetd lagrar en lista över klasser
    # kopplad till den återfunna konfigurationen.  Kan laddas in
    # den separata ''puppet''-exekverbara filen med hjälp av ''--loadclasses''
    # Alternativ.
    # Standardvärdet är '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Där puppetd cachar den lokala konfigurationen.  En
    #-tillägget som anger cacheformatet läggs automatiskt till.
    # Standardvärdet är '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    server = puppetmaster.leju.com
    Rapport = Sant
    lyssna = sant

[mästare]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    Autosign = sant
    Rapporter = butik
   
[root@puppetmaster docka]# vi fileserver.conf
     [filer]
    path /etc/puppet/files
    tillåt *

[moduler]
    tillåt *

[plugins]
    tillåt *

[root@puppetmaster docka]# mkdir /etc/docka/filer
   
[root@puppetmaster docka]# CD-manifest/
Create site.pp, som är konfigurationsfilen för dockposten:
[root@puppetmaster manifesterar]# vi site.pp
importera "modules.pp"
Importera "roles.pp"
importera "nodes.pp"

# Allmänna inställningar för standardtyper
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

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

Skapa modules.pp för att importera moduler:
[root@puppetmaster manifesterar]# vi moduler.pp
import "test"

Skapa roles.pp för att definiera serverroller:
[root@puppetmaster manifesterar]# vi roller.pp
Klassbasklass {
        Inkludera test
}

Skapa nodes.pp för att konfigurera servernoderna:
[root@puppetmaster manifesterar]# vi noder.pp
nod 'basenode' {
        Inkludera baseclass
}

Noden 'puppetclient.leju.com' ärver basenode {
        tagg("test")
}

Noden 'puppetmaster.leju.com' ärver basenod {
        tagg("test")
}

[root@puppetmaster manifesterar]# CD ..
[root@puppetmaster docka]# mkdir-moduler
Skapa 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 .. /manifest/
Skapa en testklass för att leverera en fil till klienten:
[root@puppetmaster manifesterar]# vi init.pp
Klasstest {
        fil { "/tmp/test.txt":
                ensure => nu,
                grupp => "rot",
                ägare => "rot",
                mode => "0644",
                källa => "puppet:///test/test.txt"
        }
}

Att starta Puppet Master:
[root@puppetmaster manifesterar]# /etc/init.d/puppetmaster start
Se till att port 8140 är uppe.

Installation av dockklient:
[root@puppetclient ~]# mum --enablerepo="epel,epel-puppet" installera docka

Modifiera värdar och lägg till följande två poster:
[root@puppetclient ~]# vi /etc/hosts
192.168.0.10 puppetmaster.leju.com docka
192.168.0.100 puppetclient.leju.com

Konfigurera dockan:
[root@puppetclient ~]# CD /etc/Puppet/
[root@puppetclient docka]# vi docka.conf
[huvud]
    # Dockloggkatalogen.
    # Standardvärdet är '$vardir/log'.
    logdir = /var/log/puppet

    # Där Puppet PID-filer förvaras.
    # Standardvärdet är '$vardir/run'.
    rundir = /var/run/puppet

    # Där SSL-certifikat förvaras.
    # Standardvärdet är '$confdir/ssl'.
    ssldir = $vardir/SSL

[agent]
    # Filen där Puppetd lagrar en lista över klasser
    # kopplad till den återfunna konfigurationen.  Kan laddas in
    # den separata ''puppet''-exekverbara filen med hjälp av ''--loadclasses''
    # Alternativ.
    # Standardvärdet är '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Där puppetd cachar den lokala konfigurationen.  En
    #-tillägget som anger cacheformatet läggs automatiskt till.
    # Standardvärdet är '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    server = puppetmaster.leju.com
    Rapport = Sant
    lyssna = sant
   
[root@puppetclient docka]# vi namespaceauth.conf
[docklöpare]
    tillåt puppetmaster.leju.com
    tillåt *.leju.com
   
[root@puppetclient docka]# vi auth.conf
Lägg till allow * på sista raden
......
Väg /
godkänn någon
tillåt *

[root@puppetclient docka]# CD
Utför dockan:
[root@puppetclient ~]# docka --nej --test --trace --debug
Om Puppet Master inte sätter autosign=true måste det utföras i Puppet Master:
[root@puppetmaster ~]# dockcertifikat -l
puppetclient.leju.com
[root@puppetmaster ~]# dockcertifikat -s puppetclient.leju.com
Signera puppetclient.leju.com så här. Gå sedan tillbaka till klienten för att köra här:
[root@puppetclient ~]# docka --nej --test --trace --debug
Join --noop, konfigurationen kommer egentligen inte att tillämpas på klienten, utan används främst för testning för att se om det finns några fel i utskriften, och kör utan fel:
[root@puppetclient ~]# puppetd --test --trace --debug

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

Det är också möjligt att trycka på Puppet Master:
[root@puppetmaster ~]# dockspark -d --värd puppetclient.leju.com
Att trigga puppetclient.leju.com
Att få status
Status är framgång
puppetclient.leju.com avslutade med utgångskod 0
Färdigt
Att returnera 0 indikerar att puppetd på klienten aktiverades framgångsrikt.

Ställ in dockan på att starta autostart:
chkconfig --nivå 2345 docka på

Modifiera dockmästaren för att använda Passagerare
Passenger är en utvidgning av Apache 2.x för att köra räls- eller kuggväxelapplikationer i Apache. puppetmaster använder WEBrick som standard för att tillhandahålla filtjänster, om du har många puppet-klienter kommer puppetmasters filtjänstprestanda att vara dålig för att göra puppetmaster mer robust, så använd Apache för att tillhandahålla filtjänster.

Installation:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Passenger 2.2.2 RHEL5 fungerar bra.
Lägg till foreman.repo repository:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[förman]
name=Foreman stabilt arkiv
baseurl=http://yum.theforeman.org/stable
gpgcheck=0
enabled=1
[root@puppetmaster ~]# Yum installera Rubygem-Passenger-2.2.2-1
[root@puppetmaster ~]# rubygem-rack-1.0.1-1
[root@puppetmaster ~]# passenger-install-apache2-module

Installation av Apache SSL-modulen:
[root@puppetmaster ~]# mums installera mod_ssl

För att konfigurera 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
PassagerarRuby /usr/bin/ruby
PassagerarMaxPoolStorlek 30
PassagerarpoolIdleTime 1500
PassagerarMaxBegär 1000
PassagerarStatThrottleRate 120
RackAutoDetect avstängd
RailsAutoDetect Av

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# du vill nog ställa in dessa inställningar
Passagerarhögprestanda på
PassagerarMaxPoolStorlek 12
PassagerarpoolIdleTime 1500
# PassagerarMaxFörfrågningar 1000
PassagerarStatThrottleRate 120
RackAutoDetect avstängd
RailsAutoDetect Av

Lyssna 8140

<VirtualHost *:8140>
        SSLEngine på
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite ALLA:! 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
        # Om Apache klagar på ogiltiga signaturer på CRL kan du prova att inaktivera
        # CRL kontrollerar genom att kommentera nästa rad, men detta rekommenderas inte.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient valfritt
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # Följande klienthuvuden tillåter samma konfiguration att fungera 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/>
                Alternativ Ingen
                Tillåt Överstyr Ingen
                Order tillåt, neka
                tillåt från alla
        </Directory>
</VirtualHost>

Ändra puppetmaster-konfigurationsfilen för att lägga till följande två rader:
[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[mästare]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
Modifiera /etc/sysconfig/puppetmaster:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# Lägg till följande rad i slutet:
PUPPETMASTER_EXTRA_OPTS="--rapporterar butik"
Om du behöver rapportera till både förmannen och dockinstrumentpanelen, lägg till följande rad:
PUPPETMASTER_EXTRA_OPTS="--rapporterar butik, arbetsledare, puppet_dashboard"

Stoppa dockmästartjänsten och starta apache-tjänsten:
[root@puppetmaster ~]# /etc/init.d/puppetmaster stopp
[root@puppetmaster ~]# /etc/init.d/httpd start

Boot startar inte puppetmaster-tjänsten, boot startar httpd-tjänsten:
[root@puppetmaster ~]# chkconfig --nivå 2345 Puppetmaster av
[root@puppetmaster ~]# chkconfig --level 2345 httpd on

Se till att port 8140 är aktiverad:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
tcp 0 0 :::8140 :::* LYSSNA 9834/httpd

Testa på klientsidan om felloggen är utskriven:
[root@puppetclient ~]# puppetd --test --trace --debug




Föregående:php-fpm.conf Viktiga parametrar förklaras i detalj
Nästa:Den 25 oktober 2014 (lördag), klockan 16.00, testades luftförsvars- och katastrofförebyggande larmet
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com