Wayang adalah alat manajemen konfigurasi sumber terbuka yang membantu Anda mengelola konfigurasi ratusan sistem klien dari lokasi pusat.
Wayang membuat hidup admin lebih mudah dengan mengurangi waktu yang dihabiskan untuk tugas yang berulang dan memungkinkan mereka untuk berkonsentrasi pada pekerjaan lain, juga memastikan bahwa konfigurasi yang diterapkan konsisten di seluruh infrastruktur.
Wayang tersedia untuk Linux, Mac, BSD, Solaris, dan Sistem komputer berbasis Windows, dirilis di bawah Lisensi Apache, ditulis dalam bahasa “Ruby”.
Panduan ini membantu Anda menginstal Puppet 6.x di CentOS 7 / RHEL 7.
Arsitektur
Agen / Master
Dalam arsitektur ini, node yang dikelola menjalankan perangkat lunak agen boneka, sebagai layanan latar belakang. Di sisi lain, satu atau lebih server menjalankan aplikasi master, mis. Server boneka.
Agen wayang secara berkala mengirimkan fakta kepada dalang dan meminta katalog. Master mengkompilasi dan mengembalikan katalog node tertentu, menggunakan sumber informasi yang dapat diaksesnya.
Arsitektur yang Berdiri Sendiri
Dalam arsitektur ini, setiap node yang dikelola memiliki salinan info konfigurasi dan mengkompilasi katalognya. Ini menjalankan aplikasi aplikasi boneka sebagai tugas cron.
Lingkungan
Di sini, kita akan mengonfigurasi boneka dalam arsitektur Server/agen.
Tuan Boneka
Nama Inang: server.itzgeek.local
Alamat IP: 192.168.1.10
Sistem Operasi: CentOS 7.6
Klien boneka
Nama Inang: client.itzgeek.local
Alamat IP: 192.168.1.20
Sistem Operasi: CentOS 7.6
Prasyarat
Instal NTP
Pengaturan waktu node master dan klien harus disinkronkan secara akurat dengan server waktu upstream karena master server master Wayang akan bertindak sebagai otoritas sertifikat.
(Jika waktunya salah, itu mungkin keliru mengeluarkan sertifikat agen dari masa lalu atau masa depan yang jauh, yang akan diperlakukan oleh node lain sebagai kedaluwarsa.)
Instal paket NTP dan lakukan sinkronisasi waktu dengan server NTP upstream.
yum -y install ntpdate ntpdate 0.centos.pool.ntp.orgPastikan semua node berada di zona waktu yang sama menggunakan tanggal memerintah. Jika ada perbedaan, ubah sesuai.
BACA :Cara Mengubah Zona Waktu di CentOS 7 / RHEL 7
DNS
Agen boneka menggunakan nama host untuk berkomunikasi dengan Server Boneka. Jadi, pastikan node agen dapat menyelesaikan nama host dari Puppet Server dengan bantuan /etc/hosts
file atau server DNS.
Setup Wayang Repositori
Untuk menginstal Server/Agen Wayang, kita perlu menambahkan repositori boneka di semua node.
Siapkan repositori Wayang di node master dan agen.rpm -Uvh https://yum.puppet.com/puppet6-release-el-7.noarch.rpm
Instal Server Wayang
Puppet Server adalah perangkat lunak server yang berjalan pada node master boneka. Puppetmaster mendorong konfigurasi ke node yang dikelola (puppet-agent).
Instal server Wayang menggunakan perintah di bawah ini.
yum install -y puppetserver
Server boneka sekarang sudah terpasang, jangan mulai layanan server boneka.
Konfigurasi Server Boneka
Alokasi Memori
Secara default, Puppet Server JVM dikonfigurasi untuk menggunakan memori 2GB. Anda dapat mengubahnya, tergantung pada seberapa banyak memori yang tersedia di node master Anda; pastikan itu cukup untuk mengelola semua node yang terhubung dengannya.
Untuk mengubah nilai alokasi memori, edit file di bawah ini.
vi /etc/sysconfig/puppetserver
Ubah nilainya.
Dari:
JAVA_ARGS="-Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"
Kepada:
Untuk 512MB, gunakan pengaturan di bawah ini.
JAVA_ARGS="-Xms512m -Xmx512m -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"
Server Web Tertanam
Puppet Server menggunakan server web berbasis Jetty yang tertanam dalam proses JVM layanan. Anda tidak perlu mengkonfigurasi atau mengaktifkan server web; itu bekerja di luar kotak. Performanya baik di bawah beban tingkat produksi.
Pengaturan server web tertanam dapat dimodifikasi di webserver.conf. Anda mungkin perlu mengedit file ini jika Anda menggunakan CA eksternal atau menjalankan Puppet Server pada port non-standar.
Konfigurasi Wayang
Konfigurasi Sederhana
Puppet Server tidak memerlukan konfigurasi apapun. Anda bisa memulai layanan server Wayang. Ini akan menggunakan pengaturan default.
Nama host Server Wayang default (dns_alt_names) adalah boneka, jadi Anda perlu menggunakan server =boneka dalam file konfigurasi boneka-agen.Jika Anda ingin mengubah nama host dalang, ikuti prosedur di bawah ini.
Konfigurasi Lanjutan (opsional)
Di sini, saya akan mengubah pengaturan Wayang Guru untuk kebutuhan kita.
vi /etc/puppetlabs/puppet/puppet.conf
Tempatkan baris di bawah ini. Ubah sesuai dengan lingkungan Anda.
[master] dns_alt_names = server.itzgeek.local,server [main] certname = server.itzgeek.local server = server.itzgeek.local environment = production runinterval = 1h
Mulai Server Boneka
Buat CA penandatanganan root dan perantara untuk Puppet Server.
puppetserver ca setup
Keluaran:
Generation succeeded. Find your files in /etc/puppetlabs/puppet/ssl/caJika Anda mendapatkan boneka server:perintah tidak ditemukan, jalankan source /etc/profile.d/puppet-agent.sh di terminal atau keluar dari sesi saat ini dan masuk kembali.
Mulai dan aktifkan Server Wayang.
systemctl start puppetserver systemctl enable puppetserver
Firewall
Master Wayang mendengarkan pada port 8140, jadi konfigurasikan firewall sedemikian rupa sehingga node yang dikelola dapat terhubung ke master.
firewall-cmd --permanent --add-port=8140/tcp firewall-cmd --reload
Instal Agen Wayang
Instal agen boneka di klien Anda menggunakan perintah di bawah ini.
yum install -y puppet-agent
Agen boneka juga menggunakan beberapa pengaturan default untuk terhubung ke master node. Namun, kita perlu mengedit file konfigurasi boneka dan mengatur informasi dalang.
Setel server nilai sesuai nama node master Anda. Dalam kasus saya, servernya adalah server.itzgeek.local , dan nama asli adalah nama host klien saya (client.itzgeek.local ).vi /etc/puppetlabs/puppet/puppet.conf
Atur seperti di bawah ini.
[main] certname = client.itzgeek.local server = server.itzgeek.local environment = production runinterval = 1h
Anda dapat mengubah nilai runinterval tergantung pada kebutuhan. Anda dapat mengatur nilai dalam detik (10 atau 10 detik), menit (10m) dan jam (1j). Setelan ini mengontrol berapa lama agen harus menunggu di antara dua permintaan katalog.
Mulai agen boneka di node dan membuatnya mulai secara otomatis pada boot sistem.
puppet resource service puppet ensure=running enable=true
Keluaran:
Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running' service { 'puppet': ensure => 'running', enable => 'true', }Jika Anda mendapatkan perintah boneka:tidak ditemukan, jalankan source /etc/profile.d/puppet-agent.sh di terminal atau keluar dari sesi saat ini dan masuk kembali.
Menandatangani Sertifikat Node Agen di Server Master
Dalam penerapan agen/master, admin harus menyetujui permintaan sertifikat yang datang dari setiap node sehingga mereka dapat mengambil konfigurasi. Node agen akan meminta sertifikat untuk pertama kalinya jika mencoba dijalankan.
Masuk ke server dalang dan jalankan perintah di bawah ini untuk melihat permintaan yang luar biasa.
puppetserver ca list
Keluaran:
client.itzgeek.local (SHA256) A6:0E:93:51:FF:53:C8:FA:63:70:72:53:B6:1E:1B:A8:49:79:37:7E:57:00:02:AE:32:44:22:BE:97:F5:08:09
Jalankan perintah tanda sertifikat boneka untuk menandatangani permintaan.
puppetserver ca sign --certname client.itzgeek.local
Keluaran:
Successfully signed certificate request for client.itzgeek.local
Master boneka sekarang dapat berkomunikasi dengan mesin klien dan mengontrol node.
Jika Anda memiliki beberapa permintaan penandatanganan dari node, Anda dapat menandatangani semua permintaan dalam satu perintah.
puppetserver ca sign --all
Terkadang, Anda mungkin perlu mencabut sertifikat node tertentu untuk membacanya kembali.
Ganti
puppetserver ca revoke --certname <AGENT_NAME>
Anda dapat membuat daftar semua permintaan yang ditandatangani dan tidak ditandatangani dengan perintah di bawah ini.
puppetserver ca list --all
Keluaran:
server.itzgeek.local (SHA256) 6E:90:94:6F:31:4F:8C:2A:28:90:D5:C0:6D:71:18:65:5E:86:DE:1C:16:9C:7C:30:8F:BF:DA:87:2D:F7:2C:26 alt names: ["DNS:server.itzgeek.local", "DNS:server", "DNS:server.itzgeek.local"] client.itzgeek.local (SHA256) A6:08:36:5C:DB:73:0D:16:BA:5B:0D:72:76:FD:C7:31:DD:87:6F:EC:D4:4F:7A:87:E9:4F:73:70:D0:09:6E:61
Verifikasi Klien Boneka
Setelah Puppet Server menandatangani sertifikat klien Anda, jalankan perintah berikut pada mesin klien untuk mengujinya.
puppet agent --test
Keluaran:
Info: Using configured environment 'production' Info: Retrieving pluginfacts Info: Retrieving plugin Info: Retrieving locales Info: Caching catalog for client.itzgeek.local Info: Applying configuration version '1558878523' Notice: Applied catalog in 0.03 seconds
Membuat manifes pertama kami
Manifest adalah file data yang berisi konfigurasi klien, ditulis dalam bahasa deklaratif Wayang atau Ruby DSL. Bagian ini mencakup beberapa manifes dasar untuk membuat direktori serta file pada node yang dikelola.
File manifes boneka utama ada di /etc/puppetlabs/code/environments/production/manifests/site.pp.
vi /etc/puppetlabs/code/environments/production/manifests/site.pp
Sekarang tambahkan baris berikut ke manifes untuk membuat direktori pada node terkelola.
Jika variabel simpul tidak disetel, manifes ini akan berlaku untuk semua simpul yang terhubung ke dalang.node 'client.itzgeek.local' { # Applies only to mentioned node; if nothing mentioned, applies to all. file { '/tmp/puppetesttdir': # Resource type file ensure => 'directory', # Create as a diectory owner => 'root', # Ownership group => 'root', # Group Name mode => '0755', # Directory permissions } }
Sekarang, jalankan perintah berikut pada node klien untuk mengambil konfigurasi.
puppet agent --test
Keluaran:
Info: Using configured environment 'production' Info: Retrieving pluginfacts Info: Retrieving plugin Info: Caching catalog for client.itzgeek.local Info: Applying configuration version '1472165498' Notice: /Stage[main]/Main/Node[client.itzgeek.local]/File[/tmp/puppetesttdir]/ensure: created Notice: Applied catalog in 0.03 seconds
Verifikasi bahwa direktori telah dibuat pada node terkelola.
[root@client ~]# ls -ld /tmp/puppetesttdir drwxr-xr-x. 2 root root 6 May 26 09:57 /tmp/puppetesttdir
Mari lakukan pengujian sekali lagi dengan menulis manifes untuk membuat file dengan konten di dalamnya.
node 'client.itzgeek.local' { # Applies only to mentioned node; if nothing mentioned, applies to all. file { '/tmp/puppettestfile': # Resource type file ensure => 'present', # Make sure it exists owner => 'root', # Ownership group => 'root', # Group Name mode => '0644', # File permissions content => "This File is created by Puppet Server" } }
Anda dapat pergi ke mesin klien dan mengambil katalog seperti yang ditunjukkan pada contoh sebelumnya atau agen Wayang akan secara berkala mendapatkan manifes dari Server Wayang tergantung pada runinterval Anda atur dalam file konfigurasi.
Kesimpulan
Saya harap Anda telah mempelajari cara menginstal Puppet Server and Agent di CentOS 7 / RHEL 7. Selain itu, Anda juga telah belajar membuat file manifes sederhana untuk membuat direktori di node klien. Silakan bagikan tanggapan Anda di bagian komentar.