Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 8686|Jawab: 0

Manajemen Konfigurasi: Instalasi dan Penggunaan Boneka (1)

[Salin tautan]
Diposting pada 20/10/2014 09.47.45 | | |
1. Pengantar Boneka

Administrator sistem sering terjebak dalam serangkaian tugas berulang: memutakhirkan paket, mengelola file konfigurasi, layanan sistem, tugas cron, menambahkan konfigurasi baru, memperbaiki bug, dll. Tugas-tugas ini seringkali berulang dan tidak efisien, dan respons pertama untuk menyelesaikan tugas-tugas ini adalah mengotomatiskannya, sehingga skrip khusus muncul. Karena kompleksitas lingkungan, skrip dan aplikasi khusus berulang kali dikembangkan dan sulit untuk disesuaikan dengan beberapa platform, dan fleksibilitas serta fungsionalitas sulit dijamin, sehingga alat manajemen konfigurasi otomatis seperti Puppet telah muncul.

Di dunia open source, ada banyak alat konfigurasi yang dapat dipilih, dan beberapa produk utama di ruang ini adalah:

    Boneka (http://puppet.reductivelabs.com/): Alat manajemen konfigurasi yang ditulis dalam Ruby yang menggunakan arsitektur C/S untuk mengonfigurasi klien dalam bahasa deklaratif.
    Cfengine (http://www.cfengine.org): Salah satu alat konfigurasi open source pertama yang dirilis, dirilis pada tahun 1993, ini juga merupakan arsitektur C/S, biasanya digunakan di lembaga pendidikan.
    LCFG(http://www.lcfg.org/): Alat manajemen konfigurasi untuk arsitektur C/S yang menggunakan XML untuk menentukan konfigurasi.
    Bcfg2: Alat manajemen konfigurasi untuk arsitektur C/S yang ditulis dalam Python yang menggunakan spesifikasi dan respons klien untuk mengonfigurasi host target.

Dokumen ini didedikasikan untuk menjelaskan cara menggunakan Puppet untuk mengelola host, aplikasi, program latar belakang, dan berbagai layanan Anda.

Tentang Boneka:

1. Untuk apa Boneka digunakan?

Puppet adalah alat manajemen konfigurasi sistem berbasis Ruby sumber terbuka yang mengandalkan arsitektur penyebaran C/S. Pengembang utamanya adalah Luke Kanies, yang mengikuti lisensi hak cipta GPLv2. Sejak 1997, Kanies telah terlibat dalam administrasi sistem UNIX, dan pengembangan Puppet berasal dari pengalaman ini. Tidak puas dengan alat konfigurasi yang tersedia, Kanies mulai mengembangkan alat di laboratorium Reduktif antara tahun 2001 dan 2005. Segera, Reductive Labs merilis produk andalan mereka, Puppet.

2. Fitur Pupput

Banyak alat manajemen konfigurasi sistem bekerja sangat mirip, seperti cfengine. Apa yang membuat Puppet unik?

Sintaks Puppet memungkinkan Anda membuat skrip terpisah untuk membangun pengguna di semua host target Anda. Semua host target akan menafsirkan dan menjalankan modul secara bergantian menggunakan sintaks yang berlaku untuk sistem lokal. Misalnya, jika konfigurasi ini dijalankan di server Red Hat, buat pengguna menggunakan perintah useradd; Jika konfigurasi ini dijalankan pada host FreeBSD, perintah adduser digunakan.

Aspek luar biasa lainnya dari Puppet adalah fleksibilitasnya. Karena sifat perangkat lunak sumber terbuka, Anda dapat dengan bebas mendapatkan kode sumber Puppet, dan jika Anda mengalami masalah dan memiliki kemampuan, Anda dapat memodifikasi atau meningkatkan kode Puppet agar sesuai dengan lingkungan Anda. Selain itu, pengembang komunitas dan donatur terus meningkatkan kemampuan Puppet. Komunitas besar pengembang dan pengguna juga berkomitmen untuk menyediakan dokumentasi dan dukungan teknis untuk Puppet.

Boneka juga mudah diskalakan. Dukungan paket khusus dan konfigurasi lingkungan sistem khusus dapat ditambahkan dengan cepat dan mudah ke penginstal Puppet.

3. Mode kerja boneka

Puppet adalah alat manajemen konfigurasi arsitektur C/S yang menginstal paket puppet-server (dikenal sebagai Puppet master) di server pusat. Instal perangkat lunak klien Puppet (disebut Puppet Client) pada host target yang perlu dikelola. Saat klien terhubung ke Puppet master, file konfigurasi yang ditentukan pada Puppet master dikompilasi dan kemudian dijalankan pada klien. Secara default, setiap klien berkomunikasi dengan server setiap setengah jam untuk mengonfirmasi pembaruan informasi konfigurasi. Jika ada informasi konfigurasi baru atau informasi konfigurasi telah berubah, konfigurasi akan dikompilasi ulang dan dipublikasikan ke setiap klien untuk dieksekusi. Anda juga dapat secara aktif memicu pembaruan informasi konfigurasi di server untuk memaksa setiap klien mengonfigurasinya. Jika informasi konfigurasi klien diubah, ia bisa mendapatkan konfigurasi asli dari server untuk memperbaikinya.

Manajemen Konfigurasi: Instalasi dan Penggunaan Boneka (1)


4. Masa depan Boneka

Terakhir, Puppet adalah alat muda yang masih dalam pengembangan dan pengembangan. Komunitas Boneka berkembang pesat, dan banyak ide baru yang terus dimasukkan, mendorong pengembangan, pembaruan, dan modul untuk disajikan setiap hari.

2. Konfigurasi dan instalasi (instalasi Puppet 2.6.4 CentOS 5.4):

Konfigurasikan repositori di server boneka dan klien:
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
Tambahkan ke:
[boneka epel]
nama=boneka epel
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
diaktifkan=0
gpgcheck=0

Tambahkan repositori puppet.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[boneka]
name=Paket Puppet Labs
baseurl=http://yum.puppetlabs.com/base/
diaktifkan=0
gpgcheck=0

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

Ubah host dan tambahkan dua rekaman berikut:
[root@puppetmaster ~]# vi /etc/host
192.168.0.10 puppetmaster.leju.com boneka
192.168.0.100 puppetclient.leju.com

Mengonfigurasi Boneka:
[root@puppetmaster ~]# cd /etc/boneka/
[root@puppetmaster boneka]# vi boneka.conf

[utama]
    # Direktori log Boneka.
    # Nilai defaultnya adalah '$vardir/log'.
    logdir = /var/log/boneka

    # Di mana file PID Puppet disimpan.
    # Nilai defaultnya adalah '$vardir/run'.
    rundir = /var/run/boneka

    # Di mana sertifikat SSL disimpan.
    # Nilai defaultnya adalah '$confdir/ssl'.
    ssldir = $vardir/ssl

[agen]
    # File di mana boneka menyimpan daftar kelas
    # terkait dengan konfigurasi yang diambil.  Dapat dimuat di
    # ''boneka'' yang dapat dieksekusi terpisah menggunakan ''-loadclasses''
    # opsi.
    # Nilai defaultnya adalah '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Dimana boneka menyimpan konfigurasi lokal.  Sebuah
    # yang menunjukkan format cache ditambahkan secara otomatis.
    # Nilai defaultnya adalah '$confdir/localconfig'.
    localconfig = $vardir/localconfig
    server = puppetmaster.leju.com
    laporan = benar
    dengarkan = benar

[menguasai]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    Tanda Otomatis = Benar
    Laporan = Simpan
   
[root@puppetmaster boneka]# vi fileserver.conf
     [berkas]
    jalur /etc/boneka/file
    Izinkan *

[modul]
    Izinkan *

[Plugin]
    Izinkan *

[root@puppetmaster boneka]# mkdir /etc/boneka/file
   
[root@puppetmaster boneka]# cd manifes/
Buat site.pp, yang merupakan file konfigurasi entri boneka:
[manifes root@puppetmaster]# vi site.pp
Impor "Moduls.pp"
Impor "roles.pp"
impor "nodes.pp"

# Pengaturan umum untuk tipe standar
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

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

Buat modules.pp untuk mengimpor modul:
[manifes root@puppetmaster]# vi moduls.pp
impor "pengujian"

Buat roles.pp untuk menentukan peran server:
[root@puppetmaster manifes]# vi roles.pp
kelas dasar {
        Termasuk tes
}

Buat nodes.pp untuk mengonfigurasi node server:
[root@puppetmaster manifes]# vi nodes.pp
simpul 'simpul dasar' {
        sertakan kelas dasar
}

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

node 'puppetmaster.leju.com' mewarisi basenode {
        tag ("uji")
}

[root@puppetmaster manifes]# cd ..
[root@puppetmaster boneka]# modul mkdir
Buat modul pengujian:
[root@puppetmaster modul]# mkdir -p uji/manifes/
[root@puppetmaster modul]# mkdir test/files/
[root@puppetmaster modul]# CD test/files/
[root@puppetmaster file]# vi test.txt
garis uji!
[file root@puppetmaster]# cd .. /manifes/
Buat kelas pengujian untuk mengirimkan file ke klien:
[root@puppetmaster manifes]# vi init.pp
tes kelas {
        file { "/tmp/test.txt":
                memastikan => hadir,
                group => "root",
                pemilik => "root",
                mode => "0644",
                sumber => "puppet:///test/test.txt"
        }
}

Meluncurkan Puppet Master:
[root@puppetmaster manifes]# /etc/init.d/puppetmaster start
Pastikan port 8140 aktif.

Instalasi klien boneka:
[root@puppetclient ~]# yum --enablerepo="epel,epel-puppet" menginstal boneka

Ubah host dan tambahkan dua rekaman berikut:
[root@puppetclient ~]# vi /etc/host
192.168.0.10 puppetmaster.leju.com boneka
192.168.0.100 puppetclient.leju.com

Mengonfigurasi boneka:
[root@puppetclient ~]# cd /etc/boneka/
[root@puppetclient boneka]# vi boneka.conf
[utama]
    # Direktori log Boneka.
    # Nilai defaultnya adalah '$vardir/log'.
    logdir = /var/log/boneka

    # Di mana file PID Puppet disimpan.
    # Nilai defaultnya adalah '$vardir/run'.
    rundir = /var/run/boneka

    # Di mana sertifikat SSL disimpan.
    # Nilai defaultnya adalah '$confdir/ssl'.
    ssldir = $vardir/ssl

[agen]
    # File di mana boneka menyimpan daftar kelas
    # terkait dengan konfigurasi yang diambil.  Dapat dimuat di
    # ''boneka'' yang dapat dieksekusi terpisah menggunakan ''-loadclasses''
    # opsi.
    # Nilai defaultnya adalah '$confdir/classes.txt'.
    classfile = $vardir/classes.txt

    # Dimana boneka menyimpan konfigurasi lokal.  Sebuah
    # yang menunjukkan format cache ditambahkan secara otomatis.
    # Nilai defaultnya adalah '$confdir/localconfig'.
    localconfig = $vardir/localconfig

    server = puppetmaster.leju.com
    laporan = benar
    dengarkan = benar
   
[root@puppetclient boneka]# vi namespaceauth.conf
[pelari boneka]
    Izinkan puppetmaster.leju.com
    izinkan *.leju.com
   
[root@puppetclient boneka]# vi auth.conf
Tambahkan izinkan * ke baris terakhir
......
Jalur /
autentikasi apa pun
Izinkan *

[root@puppetclient boneka]# cd
Eksekusi boneka:
[root@puppetclient ~]# boneka --noop --test --trace --debug
Jika Puppet Master tidak mengatur: autosign=true, itu perlu dieksekusi di Puppet Master:
[root@puppetmaster ~]# sertifikat boneka -l
puppetclient.leju.com
[root@puppetmaster ~]# sertifikat boneka -s puppetclient.leju.com
Tandatangani puppetclient.leju.com seperti ini. Kemudian kembali ke klien untuk mengeksekusi di sini:
[root@puppetclient ~]# boneka --noop --test --trace --debug
Gabung --noop, konfigurasi tidak akan benar-benar diterapkan pada klien, terutama digunakan untuk pengujian, untuk melihat apakah ada kesalahan dalam cetakan, dan eksekusi tanpa kesalahan:
[root@puppetclient ~]# boneka --test --trace --debug

Lihat dokumen:
[root@puppetclient ~]# ll /tmp/
Jumlah 8
-rw-r--r-- 1 akar akar 11 Feb 25 22:35 test.txt
Dokumen tersebut telah dikeluarkan.

Dimungkinkan juga untuk mendorong Puppet Master:
[root@puppetmaster ~]# tendangan boneka -d --tuan rumah puppetclient.leju.com
Memicu puppetclient.leju.com
Mendapatkan status
status adalah kesuksesan
puppetclient.leju.com selesai dengan kode keluar 0
Selesai
Mengembalikan 0 menunjukkan bahwa boneka pada klien berhasil dipicu.

Atur boneka untuk boot mulai otomatis:
chkconfig --level 2345 boneka aktif

Modifikasi dalang untuk menggunakan Penumpang
Penumpang adalah perpanjangan dari Apache 2.x untuk menjalankan aplikasi Rel atau Rak di Apache. puppetmaster menggunakan WEBrick untuk menyediakan layanan file secara default, jika Anda memiliki banyak klien boneka, kinerja layanan file puppetmaster akan buruk, untuk membuat puppetmaster lebih kuat, jadi gunakan Apache untuk menyediakan layanan file.

Instalasi:
[root@puppetmaster ~]# yum install httpd httpd-devel ruby-devel rubygems
Penumpang 2.2.2 RHEL5 berfungsi dengan baik.
Tambahkan repositori foreman.repo:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[mandor]
name=Repositori stabil mandor
baseurl=http://yum.theforeman.org/stable
gpgcheck=0
diaktifkan=1
[root@puppetmaster ~]# yum instal rubygem-passenger-2.2.2-1
[root@puppetmaster ~]# rak-rubygem-1.0.1-1
[root@puppetmaster ~]# modul penumpang instal-apache2

Menginstal modul SSL Apache:
[root@puppetmaster ~]# yum instal mod_ssl

Untuk mengonfigurasi aplikasi rak Boneka:
mkdir -p /etc/boneka/rak/boneka/
mkdir /etc/boneka/rak/boneka/publik /etc/boneka/rak/boneka/dalang / 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/puppet/puppetd/
Boneka chown /etc/boneka/rak/boneka/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/penumpang-2.2.2
PenumpangRuby /usr/bin/ruby
PenumpangMaxPoolUkuran 30
PenumpangKolam RenangWaktu IdleJam 1500
PenumpangMaxPermintaan 1000
Tingkat PenumpangStatThrottleRate 120
RackAutoDetect Mati
RailsAutoDetect Mati

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# Anda mungkin ingin menyetel pengaturan ini
PenumpangPerforma Tinggi pada
PenumpangMaxPoolUkuran 12
PenumpangKolam RenangWaktu IdleJam 1500
# PenumpangMaxPermintaan 1000
Tingkat PenumpangStatThrottleRate 120
RackAutoDetect Mati
RailsAutoDetect Mati

Dengarkan 8140

<VirtualHost *:8140>
        SSLEngine aktif
        SSLProtocol -ALL + SSLv3 +TLSv1
        SSLCipherSuite SEMUA:! ADH: RC4 + RSA: + TINGGI: + SEDANG: -RENDAH: -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
        # Jika Apache mengeluh tentang tanda tangan yang tidak valid di CRL, Anda dapat mencoba menonaktifkan
        # Pemeriksaan CRL dengan mengomentari baris berikutnya, tetapi ini tidak disarankan.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient opsional
        SSLVerifyKedalaman 1
        SSLOptions +StdEnvVars

        # Header klien berikut memungkinkan konfigurasi yang sama untuk bekerja dengan Pound.
        RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e
        RequestHeader mengatur X-Client-DN %{SSL_CLIENT_S_DN}e
        RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e

        DocumentRoot /etc/boneka/rak/boneka/puppetmasterd/publik/
        RakBaseURI /
        <Direktori /etc/boneka/rak/boneka/boneka/>
                Opsi Tidak Ada
                IzinkanTidak Ada
                Pesan izinkan, tolak
                izinkan dari semua
        </Directory>
</VirtualHost>

Ubah file konfigurasi puppetmaster untuk menambahkan dua baris berikut:
[root@puppetmaster ~]# vi /etc/boneka/boneka.conf
[menguasai]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
Modifikasi /etc/sysconfig/puppetmaster:
[root@puppetmaster ~]# vi /etc/sysconfig/puppet
# Tambahkan baris berikut di bagian akhir:
PUPPETMASTER_EXTRA_OPTS="--laporan simpan"
Jika Anda perlu melapor ke mandor dan puppet-dashboard, tambahkan baris berikut:
PUPPETMASTER_EXTRA_OPTS="--laporan toko, mandor, puppet_dashboard"

Hentikan layanan puppetmaster dan mulai layanan apache:
[root@puppetmaster ~]# /etc/init.d/dalang berhenti
[root@puppetmaster ~]# /etc/init.d/httpd mulai

Boot tidak memulai layanan puppetmaster, boot memulai layanan httpd:
[root@puppetmaster ~]# chkconfig --level 2345 dalang mati
[root@puppetmaster ~]# chkconfig --level 2345 httpd aktif

Pastikan port 8140 diaktifkan:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
tcp 0 0 :::8140 :::* DENGARKAN 9834/httpd

Uji di sisi klien untuk melihat apakah log kesalahan dicetak:
[root@puppetclient ~]# boneka --test --trace --debug




Mantan:php-fpm.conf parameter penting dijelaskan secara rinci
Depan:Pada tanggal 25 Oktober 2014 (Sabtu), pukul 16 malam, alarm pertahanan udara dan pencegahan bencana diuji
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com