Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 8686|Răspunde: 0

Managementul configurației: Instalarea și utilizarea păpușilor (1)

[Copiază linkul]
Postat pe 20.10.2014 09:47:45 | | |
1. Introducere în păpușă

Administratorii de sistem sunt adesea blocați într-o serie de sarcini repetitive: actualizarea pachetelor, gestionarea fișierelor de configurare, a serviciilor de sistem, a sarcinilor cron, adăugarea de configurații noi, corectarea erorilor, etc. Aceste sarcini sunt adesea repetitive și ineficiente, iar primul răspuns la rezolvarea lor este automatizarea lor, astfel încât să apară scripturi personalizate. Din cauza complexității mediului, scripturile și aplicațiile personalizate sunt dezvoltate în mod repetat și dificil de adaptat mai multe platforme, iar flexibilitatea și funcționalitatea sunt greu de garantat, astfel că au apărut instrumente automate de management al configurației precum Puppet.

În lumea open source, există multe instrumente de configurare din care poți alege, iar unele dintre produsele cheie din acest domeniu sunt:

    Puppet (http://puppet.reductivelabs.com/): Un instrument de management al configurației scris în Ruby care folosește arhitectura C/S pentru a configura clientul în limbaj declarativ.
    Cfengine (http://www.cfengine.org): Unul dintre primele instrumente open source de configurare lansate, lansat în 1993, este tot o arhitectură C/S, folosită de obicei în instituțiile de învățământ.
    LCFG(http://www.lcfg.org/): Un instrument de management al configurației pentru arhitecturi C/S care folosește XML pentru a defini configurații.
    Bcfg2: Un instrument de management al configurației pentru arhitectura C/S scris în Python care folosește specificații și răspunsuri ale clienților pentru a configura gazda țintă.

Acest document este dedicat descrierii modului în care se poate folosi Puppet pentru a gestiona gazda, aplicațiile, programele de fundal și diverse servicii.

Despre Puppet:

1. La ce folosește Puppet?

Puppet este un instrument open-source de gestionare a configurației sistemului bazat pe Ruby, care se bazează pe arhitectura de implementare C/S. Dezvoltatorul principal este Luke Kanies, care urmează licența de copyright GPLv2. Din 1997, Kanies este implicat în administrarea sistemelor UNIX, iar dezvoltarea Puppet a rezultat din această experiență. Nemulțumit de uneltele de configurare disponibile, Kanies a început să dezvolte unelte în laboratorul Reductive între 2001 și 2005. Curând, Reductive Labs a lansat produsul lor emblematic, Puppet.

2. Caracteristici ale Pupput

Multe instrumente de gestionare a configurației sistemului funcționează foarte similar, cum ar fi cfengine. Ce face ca Puppet să fie unic?

Sintaxa lui Puppet îți permite să creezi un script separat pentru a construi un utilizator pe toate gazdele țintă. Toate gazdele țintă vor interpreta și executa modulul, la rândul lor, folosind sintaxa aplicabilă sistemului local. De exemplu, dacă această configurație este executată pe un server Red Hat, creează un utilizator folosind comanda useradd; Dacă această configurație este executată pe o gazdă FreeBSD, se folosește comanda adduser.

Un alt aspect remarcabil al Puppet este flexibilitatea sa. Datorită naturii software-ului open source, poți obține liber codul sursă al Puppet, iar dacă întâmpini probleme și ai această posibilitate, poți modifica sau îmbunătăți codul Puppet pentru a se potrivi mediului tău. În plus, dezvoltatorii și donatorii comunității continuă să îmbunătățească capacitățile Puppet. O comunitate mare de dezvoltatori și utilizatori este, de asemenea, dedicată furnizării de documentație și suport tehnic pentru Puppet.

Puppet este, de asemenea, ușor de scalat. Suportul pentru pachete personalizate și configurațiile speciale ale mediului de sistem pot fi adăugate rapid și ușor instalatorului Puppet.

3. Modul de lucru al păpușii

Puppet este un instrument de gestionare a configurației arhitecturii C/S care instalează pachetul puppet-server (cunoscut sub numele de Puppet master) pe un server central. Instalează software-ul client Puppet (numit Client Păpușă) pe gazda țintă care trebuie gestionată. Când clientul se conectează la Puppet master, fișierul de configurare definit pe Puppet master este compilat și apoi rulat pe client. Implicit, fiecare client comunică cu serverul la fiecare jumătate de oră pentru a confirma actualizarea informațiilor de configurare. Dacă există informații noi de configurare sau s-au schimbat, configurația va fi recompilată și publicată fiecărui client pentru execuție. Poți, de asemenea, să declanșezi activ o actualizare a informațiilor de configurare pe server pentru a forța fiecărui client să îl configureze. Dacă informațiile de configurare ale clientului sunt modificate, acesta poate obține configurația originală de la server pentru a o corecta.

Managementul configurației: Instalarea și utilizarea păpușilor (1)


4. Viitorul Marionetei

În final, Puppet este un instrument tânăr care încă este în dezvoltare și dezvoltare. Comunitatea de păpuși crește rapid, iar multe idei noi sunt constant încorporate, ceea ce determină dezvoltarea, actualizările și prezentarea modulelor în fiecare zi.

2. Configurare și instalare (Puppet 2.6.4 CentOS 5.4 instalare):

Configurează depozitul pe serverul marionetă și clientul:
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
Adaugă la:
[păpușă epel]
nume=păpușă epel
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
activat=0
gpgcheck=0

Adaugă depozitul puppet.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[laboratoare de păpuși]
name=Pachete Puppet Labs
baseurl=http://yum.puppetlabs.com/base/
activat=0
gpgcheck=0

Instalarea Păpușarului:
[root@puppetmaster ~]# yum --enablerepo=epel,epel-puppet install puppet-server

Modifică gazdele și adaugă următoarele două înregistrări:
[root@puppetmaster ~]# vi /etc/hosts
192.168.0.10 puppetmaster.leju.com păpușă
192.168.0.100 puppetclient.leju.com

Configurarea păpușii:
[root@puppetmaster ~]# cd /etc/puppet/
[root@puppetmaster puppet]# vi puppet.conf

[principal]
    # Directorul jurnalului Păpușilor.
    # Valoarea implicită este '$vardir/log'.
    logdir = /var/log/păpușă

    # Unde sunt păstrate fișierele PID ale Marionetei.
    # Valoarea implicită este "$vardir/run".
    rundir = /var/run/păpușă

    # Unde sunt păstrate certificatele SSL.
    # Valoarea implicită este '$confdir/ssl'.
    ssldir = $vardir/ssl

[agent]
    # Fișierul în care păpușa stochează o listă cu clasele
    # asociat cu configurația recuperată.  Poate fi încărcat în
    # executabilul separat "''puppet'' folosind ''-loadclasses''
    # Opțiune.
    # Valoarea implicită este '$confdir/classes.txt'.
    fișier de clasă = $vardir/classes.txt

    # Unde puppetd ascunde configurația locală.  An
    # extensia care indică formatul cache-ului este adăugată automat.
    # Valoarea implicită este '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    server = puppetmaster.leju.com
    raport = adevărat
    ascultă = adevărat

[stăpâne]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    autosign = adevărat
    rapoarte = stocare
   
[root@puppetmaster păpușă]# vi fileserver.conf
     [dosare]
    path /etc/puppet/files
    permite *

[module]
    permite *

[pluginuri]
    permite *

[root@puppetmaster puppet]# mkdir /etc/puppet/files
   
[root@puppetmaster păpușă]# CD manifestă/
Create site.pp, care este fișierul de configurare al intrării păpușă:
[root@puppetmaster manifestă]# vi site.pp
import "modules.pp"
Importă "roles.pp"
import "nodes.pp"

# Setări generale pentru tipurile standard
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

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

Create modules.pp pentru a importa modulele:
[root@puppetmaster manifestă]# vi modules.pp
"Test" de import

Creează roles.pp pentru a defini rolurile serverului:
[root@puppetmaster se manifestă]# vi roles.pp
clasa de bază {
        include test
}

Creează nodes.pp pentru a configura nodurile serverului:
[root@puppetmaster manifestă]# vi nodes.pp
node 'basenode' {
        include clasa de bază
}

nodul 'puppetclient.leju.com' moștenește basenode {
        tag("test")
}

Nodul 'puppetmaster.leju.com' moștenește basenode {
        tag("test")
}

[root@puppetmaster se manifestă]# CD ..
[root@puppetmaster păpușă]# module mkdir
Creează un modul de testare:
[root@puppetmaster module]# mkdir -p test/manifests/
[root@puppetmaster module]# test/fișiere mkdir/
[root@puppetmaster module]# test/fișiere CD/
[root@puppetmaster fișiere]# vi test.txt
Linia de testare!
[root@puppetmaster fișiere]# CD .. /manifestă/
Creează o clasă de test pentru a livra un fișier clientului:
[root@puppetmaster se manifestă]# vi init.pp
test de clasă {
        fișier { "/tmp/test.txt":
                asigură-te că => prezent,
                grup => "rădăcină",
                proprietar => "rădăcină",
                mod => "0644",
                sursă => "puppet:///test/test.txt"
        }
}

Lansarea Puppet Master:
[root@puppetmaster manifestă]# /etc/init.d/puppetmaster start
Asigură-te că portul 8140 este activ.

Instalarea clientului păpușă:
[root@puppetclient ~]# yum --enablerepo="epel,epel-puppet" instalează puppet

Modifică gazdele și adaugă următoarele două înregistrări:
[root@puppetclient ~]# vi /etc/hosts
192.168.0.10 puppetmaster.leju.com păpușă
192.168.0.100 puppetclient.leju.com

Configurarea păpușii:
[root@puppetclient ~]# cd /etc/puppet/
[root@puppetclient păpușă]# vi puppet.conf
[principal]
    # Directorul jurnalului Păpușilor.
    # Valoarea implicită este '$vardir/log'.
    logdir = /var/log/păpușă

    # Unde sunt păstrate fișierele PID ale Marionetei.
    # Valoarea implicită este "$vardir/run".
    rundir = /var/run/păpușă

    # Unde sunt păstrate certificatele SSL.
    # Valoarea implicită este '$confdir/ssl'.
    ssldir = $vardir/ssl

[agent]
    # Fișierul în care păpușa stochează o listă cu clasele
    # asociat cu configurația recuperată.  Poate fi încărcat în
    # executabilul separat "''puppet'' folosind ''-loadclasses''
    # Opțiune.
    # Valoarea implicită este '$confdir/classes.txt'.
    fișier de clasă = $vardir/classes.txt

    # Unde puppetd ascunde configurația locală.  An
    # extensia care indică formatul cache-ului este adăugată automat.
    # Valoarea implicită este '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    server = puppetmaster.leju.com
    raport = adevărat
    ascultă = adevărat
   
[root@puppetclient păpușă]# vi namespaceauth.conf
[Păpușar]
    Permiteți puppetmaster.leju.com
    permite *.leju.com
   
[root@puppetclient păpușă]# vi auth.conf
Adaugă allow * la ultima linie
......
Drum /
Auth Any
permite *

[root@puppetclient păpușă]# CD
Execută păpușă:
[root@puppetclient ~]# puppetd --noop --test --trace --debug
Dacă Puppet Master nu setează: autosign=true, trebuie executat în Puppet Master:
[root@puppetmaster ~]# certificat păpușă -l
puppetclient.leju.com
[root@puppetmaster ~]# certificat păpușă -s puppetclient.leju.com
Semnează puppetclient.leju.com așa. Apoi revino la client pentru a executa aici:
[root@puppetclient ~]# puppetd --noop --test --trace --debug
Join --noop, configurația nu va fi aplicată cu adevărat pe client, folosită în principal pentru testare, pentru a vedea dacă există erori în printare, și execută fără erori:
[root@puppetclient ~]# puppetd --test --trace --debug

Vizualizați documentul:
[root@puppetclient ~]# ll /tmp/
Total 8
-rw-r--r-- 1 rădăcină 11 25 feb 22:35 test.txt
Documentul a fost emis.

Este posibil, de asemenea, să împingi asupra Puppet Master:
[root@puppetmaster ~]# Păpușă Lovitură -D ---Gazdă puppetclient.leju.com
Declanșarea puppetclient.leju.com
Obținerea statutului
Statutul este succesul
puppetclient.leju.com terminat cu codul de ieșire 0
Terminat
Returnarea 0 indică faptul că puppetd asupra clientului a fost declanșat cu succes.

Setează păpușa să pornească automat:
chkconfig --nivel 2345 păpușă activată

Modifică Puppetmaster-ul pentru a folosi Pasagerul
Passenger este o extensie a Apache 2.x pentru aplicații Rails sau Rack în Apache. puppetmaster folosește WEBrick pentru a oferi servicii de fișiere implicit, dacă ai mulți clienți păpuși, performanța serviciului de fișiere a păpușarului va fi slabă, pentru a face Puppetmaster mai robust, așa că folosește Apache pentru a oferi servicii de fișiere.

Instalare:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Passenger 2.2.2 RHEL5 funcționează bine.
Adaugă depozitul foreman.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[maistru]
nume=depozitul stabil Foreman
baseurl=http://yum.theforeman.org/stable
gpgcheck=0
activat=1
[root@puppetmaster ~]# yum instalează rubygem-passenger-2.2.2-1
[root@puppetmaster ~]# Rubygem-rack-1.0.1-1
[root@puppetmaster ~]# passenger-install-apache2-module

Instalarea modulului SSL Apache:
[root@puppetmaster ~]# Instalare delicioasă mod_ssl

Pentru configurarea aplicației Puppet rack:
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
PassengerRuby /usr/bin/ruby
PassengerMaxPoolDimensiunea 30
PassengerPoolIdleTime 1500
PassengerMaxRequests 1000
PassengerStatThrottleRate 120
RackAutoDetect dezactivat
RailsAutoDetect dezactivat

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# probabil vrei să reglezi aceste setări
Pasager Performanță înaltă activată
PassengerMaxPoolDimensiunea 12
PassengerPoolIdleTime 1500
# PassengerMaxRequests 1000
PassengerStatThrottleRate 120
RackAutoDetect dezactivat
RailsAutoDetect dezactivat

Ascultă 8140

<VirtualHost *:8140>
        SSLEngine on
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite TOȚI:! 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
        # Dacă Apache se plânge de semnături invalide pe CRL, poți încerca să dezactivezi
        # CRL verifică comentând următoarea linie, dar acest lucru nu este recomandat.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient opțional
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # Următoarele antete de client permit aceeași configurație să funcționeze cu 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 /
        <Directory /etc/puppet/rack/puppetmasterd/>
                Nicio opțiune
                AllowOverride Niciunul
                Ordin, permite, negă
                permite de la toți
        </Directory>
</VirtualHost>

Modifică fișierul de configurare al păpușarului pentru a adăuga următoarele două linii:
[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[stăpâne]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
Modifică /etc/sysconfig/puppetmaster:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# Adaugă următoarea linie la final:
PUPPETMASTER_EXTRA_OPTS="--rapoarte stocare"
Dacă trebuie să raportați atât la foreman, cât și la puppet-dashboard, adăugați următoarea linie:
PUPPETMASTER_EXTRA_OPTS="--rapoarte, magazin, puppet_dashboard"

Oprește serviciul de păpușari și începe serviciul apache:
[root@puppetmaster ~]# /etc/init.d/puppetmaster stop
[root@puppetmaster ~]# /etc/init.d/httpd start

Boot nu pornește serviciul puppetmaster, boot pornește serviciul httpd:
[root@puppetmaster ~]# chkconfig --nivel 2345 Puppetmaster dezactivat
[root@puppetmaster ~]# chkconfig --level 2345 httpd on

Asigură-te că portul 8140 este activat:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
TCP 0 0 :::8140 :::* ASCULTĂ 9834/httpd

Testează pe partea clientului pentru a vedea dacă jurnalul de erori este tipărit:
[root@puppetclient ~]# puppetd --test --trace --debug




Precedent:Parametrii importanți php-fpm.conf sunt explicați în detaliu
Următor:Pe 25 octombrie 2014 (sâmbătă), la ora 16:00, a fost testată alarma de apărare antiaeriană și prevenire a dezastrelor
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com