|
|
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 rinciDepan:Pada tanggal 25 Oktober 2014 (Sabtu), pukul 16 malam, alarm pertahanan udara dan pencegahan bencana diuji
|