Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 8686|Yanıt: 0

Yapılandırma Yönetimi: Kukla Kurulumu ve Kullanımı (1)

[Bağlantıyı kopyala]
Yayınlandı 20.10.2014 09:47:45 | | |
1. Kuklaya Giriş

Sistem yöneticileri genellikle tekrar eden görevlerde sıkışıp kalır: paketleri yükseltmek, yapılandırma dosyalarını, sistem hizmetlerini, cron görevlerini, yeni yapılandırmaları eklemek, hataları düzeltmek vb. Bu görevler genellikle tekrarlayan ve verimsizdir, bu görevleri çözmenin ilk tepkisi onları otomatikleştirmek olur, böylece özel betikler ortaya çıkar. Ortamın karmaşıklığı nedeniyle, özel betikler ve uygulamalar tekrar tekrar geliştirilmekte ve birden fazla platforma uyması zordur; esneklik ve işlevsellik garantisi zor olduğundan, Puppet gibi otomatik yapılandırma yönetim araçları ortaya çıkmıştır.

Açık kaynak dünyasında, seçilebilecek birçok yapılandırma aracı var ve bu alandaki bazı önemli ürünler şunlardır:

    Puppet (http://puppet.reductivelabs.com/): Ruby dilinde yazılmış ve C/S mimarisini kullanarak istemciyi bildirimci dilinde yapılandırmak için kullanılan bir yapılandırma yönetim aracı.
    Cfengine (http://www.cfengine.org): 1993'te piyasaya sürülen ilk açık kaynak yapılandırma araçlarından biri olan bu yapı, aynı zamanda eğitim kurumlarında genellikle kullanılan bir C/S mimaridir.
    LCFG(http://www.lcfg.org/): C/S mimarileri için yapılandırmaları tanımlamak için XML kullanan bir yapılandırma yönetim aracıdır.
    Bcfg2: Python dilinde yazılmış, hedef ana bilgisayarı yapılandırmak için spesifikasyonlar ve istemci yanıtları kullanan C/S mimarisi için bir yapılandırma yönetim aracı.

Bu belge, Puppet ile hostunuzu, uygulamalarınızı, arka plan programlarınızı ve çeşitli hizmetleri nasıl yöneteceğinizi açıklamaya ayrılmıştır.

Kukla Hakkında:

1. Puppet ne için kullanılır?

Puppet, C/S dağıtım mimarisine dayanan açık kaynaklı Ruby tabanlı bir sistem yapılandırma yönetim aracıdır. Ana geliştirici Luke Kanies'tir; bu lisans GPLv2 telif hakkı lisansını takip eder. 1997'den beri Kanies, UNIX sistem yönetiminde yer almakta ve Puppet'ın geliştirilmesi bu deneyimden kaynaklanmıştır. Mevcut yapılandırma araçlarından memnun kalmayan Kanies, 2001 ile 2005 yılları arasında Reductive laboratuvarında araçlar geliştirmeye başladı. Kısa süre sonra Reductive Labs amiral gemisi ürünü Puppet'ı piyasaya sürdü.

2. Pupput'un Özellikleri

Birçok sistem yapılandırma yönetim aracı, örneğin cfengine, çok benzer şekilde çalışır. Puppet'i benzersiz kılan nedir?

Puppet'ın sözdizimi, tüm hedef hostlarınızda ayrı bir kullanıcı betiği oluşturmanıza olanak tanır. Tüm hedef ev sahipleri, yerel sisteme uygulanan sözdizimi kullanılarak modülü sırayla yorumlayacak ve çalıştıracaktır. Örneğin, bu yapılandırma bir Red Hat sunucusunda çalıştırılıyorsa, useradd komutunu kullanarak bir kullanıcı oluşturun; Bu yapılandırma bir FreeBSD ana bilgisayarında çalıştırılırsa, adduser komutu kullanılır.

Puppet'ın bir diğer dikkat çekici yönü ise esnekliğidir. Açık kaynak yazılımın doğası gereği, Puppet'ın kaynak kodunu özgürce elde edebilirsiniz ve sorunlarla karşılaşırsanız ve imkanınız varsa, Puppet kodunu kendi ortamınıza göre değiştirebilir veya geliştirebilirsiniz. Ayrıca, topluluk geliştiricileri ve bağışçılar Puppet'ın yeteneklerini geliştirmeye devam ediyor. Büyük bir geliştirici ve kullanıcı topluluğu da Puppet için dokümantasyon ve teknik destek sağlamaya kendini adamıştır.

Puppet da kolayca ölçeklenebilir. Özel paket desteği ve özel sistem ortamı yapılandırmaları Puppet kurulumcuya hızlı ve kolay eklenebilir.

3. Kukla'nın çalışma modu

Puppet, kukla-sunucu paketini (Puppet master olarak bilinir) merkezi bir sunucuya yükleyen bir C/S mimarisi yapılandırma yönetim aracıdır. Yönetilmesi gereken hedef ana bilgisayara Puppet istemci yazılımını (Puppet Client olarak adlandırılır) yükleyin. İstemci Puppet master'a bağlandığında, Puppet master'da tanımlanan yapılandırma dosyası derlenir ve ardından istemcide çalıştırılır. Varsayılan olarak, her istemci her yarım saatte bir sunucu ile iletişim kurarak yapılandırma bilgilerinin güncellenmesini onaylar. Yeni yapılandırma bilgisi veya değiştiyse, yapılandırma yeniden derlenir ve her istemciye yürütülmek üzere yayımlanır. Ayrıca, her istemciyi yapılandırmaya zorlamak için sunucudaki yapılandırma bilgilerini aktif olarak tetikleyebilirsiniz. İstemcinin yapılandırma bilgileri değiştirilirse, sunucudan orijinal yapılandırmayı alarak düzeltebilir.

Yapılandırma Yönetimi: Kukla Kurulumu ve Kullanımı (1)


4. Puppet'ın geleceği

Son olarak, Puppet hâlâ geliştirilmekte olan genç bir araçtır. Kukla topluluğu hızla büyüyor ve birçok yeni fikir sürekli olarak dahil ediliyor; bu da her gün geliştirme, güncellemeler ve modüllerin sunulmasını teşvik ediyor.

2. Yapılandırma ve kurulum (Puppet 2.6.4 CentOS 5.4 kurulum):

Depoyu kukla sunucusu ve istemcide yapılandırmak:
devirde -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
Eklemek:
[kukla]
isim=epel kukla
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
etkin=0
gpgcheck=0

Puppet.repo deposunu ekleyin:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[kuklalar]
name=Puppet Labs Paketleri
baseurl=http://yum.puppetlabs.com/base/
etkin=0
gpgcheck=0

Kukla Ustası Kurulumu:
[root@puppetmaster ~]# yum --enablerepo=epel,epel-puppet install puppet-server

Ev sahiplerini değiştirin ve aşağıdaki iki kaydı ekleyin:
[root@puppetmaster ~]# vi /etc/hosts
192.168.0.10 puppetmaster.leju.com kukla
192.168.0.100 puppetclient.leju.com

Configuring Puppet:
[root@puppetmaster ~]# cd /etc/kukla/
[root@puppetmaster kukla]# vi kukla.conf

[ana kaynak]
    # Kukla log dizini.
    # Varsayılan değer '$vardir/log'dur.
    logdir = /var/log/kukla

    # Puppet PID dosyalarının saklandığı yer.
    # Varsayılan değer '$vardir/run'dur.
    rundir = /var/run/kukla

    # SSL sertifikalarının saklandığı yer.
    # Varsayılan değer '$confdir/ssl'dir.
    ssldir = $vardir/ssl

[ajan]
    # Kuklanın sınıfların listesini sakladığı dosya
    # alınan yapılandırmayla ilişkilidir.  Yüklenebilir
    # ayrı ''kukla'' çalıştırılabilir dosya '--loadclasses'' kullanılarak
    # seçeneği.
    # Varsayılan değer '$confdir/classes.txt'dir.
    classfile = $vardir/classes.txt

    # Kuklanın yerel yapılandırmayı önbellediği yer.  Bir
    # önbellek formatının otomatik eklendiğini gösteren uzantı ile bu uzantı vardır.
    # Varsayılan değer '$confdir/localconfig'dir.
    localconfig = $vardir/localconfig
    sunucu = puppetmaster.leju.com
    rapor = doğru
    dinle = doğru

[usta]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    otomatik işaret = doğru
    raporlar = depo
   
[root@puppetmaster kukla]# vi fileserver.conf
     [dosyalar]
    path /etc/puppet/files
    izin verin *

[modüller]
    izin verin *

[eklentiler]
    izin verin *

[root@puppetmaster kukla]# mkdir /etc/kukla/dosyalar
   
[root@puppetmaster kukla]# cd manifestoyor/
Site .pp oluşturun, bu kukla girişi yapılandırma dosyasıdır:
[root@puppetmaster manifests]# vi site.pp
"modules.pp" içe aktarın
import "roles.pp"
"nodes.pp" içe aktar

# Standart tipler için genel ayarlar
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

filebucket { main: server => "puppetmaster.leju.com" }
Dosya { yedek => ana }

Modülleri içe aktarmak için modules.pp oluştur:
[root@puppetmaster manifests]# vi modules.pp
"test" içe aktarma

Sunucu rollerini tanımlamak için roles.pp oluştur:
[root@puppetmaster manifests]# vi roles.pp
class baseclass {
        Dahil Testi
}

Sunucu düğümlerini yapılandırmak için nodes.pp oluşturun:
[root@puppetmaster manifests]# vi nodes.pp
node 'basenode' {
        Base Class'ı içerir
}

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

node 'puppetmaster.leju.com' basenode inherits {
        tag("test")
}

[root@puppetmaster ortaya çıkıyor]# cd ..
[root@puppetmaster kukla]# mkdir modülleri
Bir test modülü oluşturun:
[root@puppetmaster modülleri]# mkdir -p test/manifestolar/
[root@puppetmaster modülleri]# mkdir test/dosyalar/
[root@puppetmaster modülleri]# CD test/dosyalar/
[root@puppetmaster dosyaları]# vi test.txt
Test hattı!
[root@puppetmaster dosyaları]# cd .. /manifest ediyor/
İstemciye dosya teslim etmek için bir test sınıfı oluşturun:
[root@puppetmaster manifest ediyor]# vi init.pp
sınıf testi {
        file { "/tmp/test.txt":
                ensure => present,
                grup => "kök",
                owner => "kök",
                mode => "0644",
                kaynak => "puppet:///test/test.txt"
        }
}

Puppet Master'ın Başlatılması:
[root@puppetmaster ortaya çıkıyor]# /etc/init.d/puppetmaster başlat
8140 portunun açık olduğundan emin olun.

Puppet client kurulumu:
[root@puppetclient ~]# yum --enablerepo="epel,epel-puppet" kukla kur

Ev sahiplerini değiştirin ve aşağıdaki iki kaydı ekleyin:
[root@puppetclient ~]# vi /etc/hosts
192.168.0.10 puppetmaster.leju.com kukla
192.168.0.100 puppetclient.leju.com

Kuklanın yapılandırılması:
[root@puppetclient ~]# cd /vb/kukla/
[root@puppetclient kukla]# vi kukla.conf
[ana kaynak]
    # Kukla log dizini.
    # Varsayılan değer '$vardir/log'dur.
    logdir = /var/log/kukla

    # Puppet PID dosyalarının saklandığı yer.
    # Varsayılan değer '$vardir/run'dur.
    rundir = /var/run/kukla

    # SSL sertifikalarının saklandığı yer.
    # Varsayılan değer '$confdir/ssl'dir.
    ssldir = $vardir/ssl

[ajan]
    # Kuklanın sınıfların listesini sakladığı dosya
    # alınan yapılandırmayla ilişkilidir.  Yüklenebilir
    # ayrı ''kukla'' çalıştırılabilir dosya '--loadclasses'' kullanılarak
    # seçeneği.
    # Varsayılan değer '$confdir/classes.txt'dir.
    classfile = $vardir/classes.txt

    # Kuklanın yerel yapılandırmayı önbellediği yer.  Bir
    # önbellek formatının otomatik eklendiğini gösteren uzantı ile bu uzantı vardır.
    # Varsayılan değer '$confdir/localconfig'dir.
    localconfig = $vardir/localconfig

    sunucu = puppetmaster.leju.com
    rapor = doğru
    dinle = doğru
   
[root@puppetclient kukla]# vi namespaceauth.conf
[kukla ustası]
    izin puppetmaster.leju.com
    *.leju.com
   
[root@puppetclient kukla]# vi auth.conf
Son satıra izin * ekleyin
......
Yol /
Herhangi bir doğrulama
izin verin *

[root@puppetclient kukla]# cd
Kukla yürüt:
[root@puppetclient ~]# kukla --noop --test --iz --hata hata ayıklama
Eğer Puppet Master ayarlamıyorsa: autosign=true, Puppet Master'da çalıştırılmalıdır:
[root@puppetmaster ~]# kukla sertifikası -l
puppetclient.leju.com
[root@puppetmaster ~]# kukla sertifikası -s puppetclient.leju.com
Şöyle puppetclient.leju.com işaret edin. Sonra istemciye geri dönüp buradan çalıştırın:
[root@puppetclient ~]# kukla --noop --test --iz --hata hata ayıklama
Katıl --noop, yapılandırma aslında istemcide uygulanmayacak, çoğunlukla test için kullanılacak, yazıcıda hata olup olmadığını görmek ve hatasız çalıştırmak için:
[root@puppetclient ~]# kukla --test --iz --hata hata ayıklama

Belgeyi görüntüleyin:
[root@puppetclient ~]# ll /tmp/
toplam 8
-rw-r--r-- 1 kök kök 11 25 Şubat 22:35 test.txt
Belge yayımlandı.

Ayrıca Puppet Master'ı da zorlamak mümkündür:
[root@puppetmaster ~]# kukla tekme -d --ev sahibi puppetclient.leju.com
Tetikleyici puppetclient.leju.com
Statü kazanma
Statü başarıdır
puppetclient.leju.com çıkış kodu 0 ile bitti
Bitti
0 döndürmek, istemcide kuklanın başarıyla tetiklendiğini gösterir.

Kuklayı otomatik başlatma için ayarlayın:
chkconfig --level 2345 kukla üzerinde

Puppetmaster'ı Passenger kullanacak şekilde değiştirin
Passenger ise, Apache'de Rails veya Rack uygulamalarını çalıştırmak için Apache 2.x'in bir uzantısıdır. puppetmaster, varsayılan olarak dosya hizmetleri sağlamak için WEBrick kullanır; eğer çok sayıda kukla istemciniz varsa, puppetmaster'ın dosya hizmeti performansı düşük olur, böylece puppetmaster daha sağlam hale gelir, bu yüzden dosya hizmetleri sağlamak için Apache'yi kullanın.

Kurulum:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Yolcu 2.2.2 RHEL5 sorunsuz çalışıyor.
Add foreman.repo repository:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[ustabaşı]
name=Foreman kararlı deposu
baseurl=http://yum.theforeman.org/stable
gpgcheck=0
etkin=1
[root@puppetmaster ~]# yum install rubygem-passenger-2.2.2-1
[root@puppetmaster ~]# rubygem-rack-1.0.1-1
[root@puppetmaster ~]# yolcu-install-apache2-module

Apache SSL modülünün kurulması:
[root@puppetmaster ~]# Ne muyum mod_ssl

Puppet rack uygulamasını yapılandırmak için:
mkdir -p /vb./kukla/rack/kuklamasterd/
mkdir /vb/kukla/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
YolcuRuby /usr/bin/ruby
YolcuMaxHavuzBoyut 30
YolcuHavuzBoş Zaman 1500
PassengerMaxRequests 1000
YolcuStatThrottleRate 120
RackAutoDetect Kapalı
RaylarOtomatik Algılama Kapalı

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# Muhtemelen bu ayarları ayarlamak istersin
Yolcu Yüksek Performans üzerinde
YolcuMaxHavuzBoyut 12
YolcuHavuzBoş Zaman 1500
# PassengerMaxRequests 1000
YolcuStatThrottleRate 120
RackAutoDetect Kapalı
RaylarOtomatik Algılama Kapalı

Dinle 8140

<VirtualHost *:8140>
        SSLEngine açık
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite HEPSİ:! 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
        # Apache CRL'de geçersiz imzalardan şikayet ederse, devre dışı bırakmayı deneyebilirsiniz
        # CRL kontrolü bir sonraki satıra yorum yaparak yapılıyor, ancak bu önerilmiyor.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient isteğe bağlı
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # Aşağıdaki istemci başlıkları aynı yapılandırmanın Pound ile çalışmasına izin verir.
        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 /vb/kukla/rack/puppetmasterd/public/
        RackBaseURI /
        <Dizin /vb./kukla/rack/kuklamasterd/>
                Seçenek Yok
                AlpermitOverride None
                Sipariş ver, reddet
                herkesten izin verin
        </Directory>
</VirtualHost>

Puppetmaster yapılandırma dosyasını aşağıdaki iki satırı ekleyerek değiştirin:
[root@puppetmaster ~]# vi /etc/kukla/kukla.conf
[usta]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
/etc/sysconfig/puppetmaster'ı değiştir:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# Sonuna şu satırı ekle:
PUPPETMASTER_EXTRA_OPTS="--rapor mağazası"
Hem ustabaşı hem de kukla paneline rapor vermeniz gerekiyorsa, aşağıdaki satırı ekleyin:
PUPPETMASTER_EXTRA_OPTS="--rapor mağazası, ustabaşı, puppet_dashboard"

Kukla ustası hizmetini durdurun ve apaçi hizmetini başlatın:
[root@puppetmaster ~]# /etc/init.d/Puppetmaster dur
[root@puppetmaster ~]# /etc/init.d/httpd başla

Boot puppetmaster hizmetini başlatmaz, boot httpd servisini başlatır:
[root@puppetmaster ~]# chkconfig --seviye 2345 kukla ustası kapalı
[root@puppetmaster ~]# chkconfig --level 2345 httpd açık

8140 portunun etkin olduğundan emin olun:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
TCP 0 0 ::8140 :::* 9834/httpd DINLE

İstemci tarafında hata kaydının yazılıp yazmadığını test edin:
[root@puppetclient ~]# kukla --test --iz --hata hata ayıklama




Önceki:php-fpm.conf önemli parametreler ayrıntılı şekilde açıklanmıştır
Önümüzdeki:25 Ekim 2014 (Cumartesi) saat 23.00'de hava savunması ve afet önleme alarmı test edildi
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com