Ketika Anda memikirkan alat manajemen konfigurasi, yang muncul di benak Anda adalah Wayang. Puppet adalah alat manajemen konfigurasi sumber terbuka, membantu Anda menerapkan dan mengelola konfigurasi ratusan sistem klien dari lokasi pusat.
Wayang membuat hidup admin sistem lebih mudah dengan mengurangi pengeluaran waktu untuk tugas yang berulang dan memungkinkan mereka mengerjakan pekerjaan produktif lainnya, juga memastikan bahwa semua konfigurasi 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 Server di Ubuntu 18.04 / Ubuntu 16.04 &Debian 9.
Arsitektur
Agen / Master
Dalam arsitektur ini, satu atau lebih server menjalankan aplikasi dalang dan aplikasi agen boneka berjalan pada node yang dikelola (server klien), biasanya sebagai layanan latar belakang.
Agen wayang akan mengirimkan fakta kepada dalang dan meminta katalog dalam interval tertentu. Sang dalang akan mengompilasi dan mengembalikan katalog simpul tersebut, menggunakan sumber informasi yang dapat diaksesnya.
Arsitektur yang Berdiri Sendiri
Dalam arsitektur ini, node klien menjalankan aplikasi aplikasi boneka, biasanya sebagai tugas cron.
Lingkungan
Di sini, kita akan mengonfigurasi boneka dalam arsitektur master/agent dan akan menggunakan dua sistem, seperti yang disebutkan di bawah ini.
Tuan Boneka
Nama Inang: server.itzgeek.local
Alamat IP: 192.168.1.10
Klien boneka
Nama Inang: client.itzgeek.local
Alamat IP: 192.168.1.20
Prasyarat
Instal NTP
Waktu harus diatur secara akurat pada dalang karena akan bertindak sebagai otoritas sertifikat untuk menandatangani sertifikat yang berasal dari node klien. Kami akan menggunakan NTP untuk tujuan ini.
Instal paket NTP dan lakukan sinkronisasi waktu dengan server NTP upstream.
sudo apt update sudo apt install -y ntp ntpdate sudo ntpdate -u 0.ubuntu.pool.ntp.org
Zona waktu
Pastikan semua node berada dalam zona waktu yang sama menggunakan.
date
Keluaran:
Tue Sep 4 22:28:34 EDT 2018
Jika ada perbedaan, ubah sesuai. Buat daftar zona waktu yang tersedia.
timedatectl list-timezones
Atur zona waktu menggunakan perintah berikut.
sudo timedatectl set-timezone America/New_York
DNS
Agen boneka menggunakan nama host untuk berkomunikasi dengan Server Boneka. Jadi, pastikan node agen dapat menyelesaikan nama host Server Wayang. Siapkan /etc/hosts
file atau server DNS.
/etc/hosts File:
sudo nano /etc/hosts
Tambahkan entri host yang mirip dengan baris di bawah ini.
192.168.1.10 server.itzgeek.local server
Siapkan repositori PuppetLabs
Untuk menginstal dalang/agen, kita perlu menyiapkan repositori boneka di semua node.
### Ubuntu 18.04 ### wget https://apt.puppetlabs.com/puppet6-release-bionic.deb sudo dpkg -i puppet6-release-bionic.deb sudo apt update ### Ubuntu 16.04 ### wget https://apt.puppetlabs.com/puppet6-release-xenial.deb sudo dpkg -i puppet6-release-xenial.deb sudo apt update ### Debian 9 ### wget https://apt.puppetlabs.com/puppet6-release-stretch.deb sudo dpkg -i puppet6-release-stretch.deb sudo apt update
Di Ubuntu 18.04, aktifkan repositori universe, yang berisi paket-paket yang diperlukan untuk Puppet Server.
Instal Server Wayang
Puppet Server adalah perangkat lunak server yang berjalan pada node master boneka. Instal server Wayang menggunakan perintah di bawah ini.
sudo apt install -y puppetserver
Server boneka sekarang sudah terpasang, jangan mulai layanan server boneka.
Konfigurasi Server Boneka
Alokasi Memori (Opsional)
Secara default, Puppet Server JVM dikonfigurasi untuk menggunakan 2GB RAM. Anda selalu dapat menyesuaikan penggunaan memori tergantung pada seberapa banyak memori yang dimiliki node master Anda; pastikan itu cukup untuk mengelola semua node yang terhubung dengannya.
Untuk mengubah nilai alokasi memori, edit file di bawah ini.
sudo nano /etc/default/puppetserver
Ubah nilai yang ditampilkan seperti di bawah ini.
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"
Konfigurasi Wayang
Konfigurasi Sederhana
Puppet Server tidak memerlukan konfigurasi apa pun, dan Anda cukup memulai layanan Puppetserver. Ini akan menggunakan pengaturan default.
Misalnya:dns_alt_names (boneka,
Konfigurasi Lanjutan (Opsional)
Di sini, saya akan mengubah pengaturan Puppet Server untuk kebutuhan kita.
sudo nano /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 = 15m
Mulai Server Boneka
Buat CA penandatanganan root dan perantara untuk Puppet Server.
sudo /opt/puppetlabs/bin/puppetserver ca setup
Keluaran:
Generation succeeded. Find your files in /etc/puppetlabs/puppet/ssl/ca
Mulai dan aktifkan Server Wayang.
sudo systemctl start puppetserver sudo systemctl enable puppetserver
Instal Agen Wayang
Siapkan repositori Wayang di node agen Anda seperti yang ditunjukkan sebelumnya dan kemudian instal agen boneka menggunakan perintah di bawah ini.
sudo apt 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 master boneka.
sudo nano /etc/puppetlabs/puppet/puppet.confSetel server nilai sesuai dengan nama host utama Anda dan nama asli sebagai nama host klien Anda. Dalam kasus saya, servernya adalah server.itzgeek.local dan certname adalah client.itzgeek.local.
[main] certname = client.itzgeek.local server = server.itzgeek.local environment = production runinterval = 15m
Anda dapat mengubah nilai runinterval tergantung pada kebutuhan. Ini mengontrol berapa lama agen harus menunggu di antara dua permintaan katalog.
Anda dapat mengatur nilai dalam detik (30 detik atau 30) atau dalam menit (30 m) atau dalam jam (1 jam).Mulai agen boneka di node dan membuatnya mulai secara otomatis pada boot sistem.
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
Anda akan mendapatkan output seperti di bawah ini.
Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running' service { 'puppet': ensure => 'running', enable => 'true', }
Menandatangani Sertifikat Node Agen di Server Master
Dalam penerapan agen/master, admin harus menyetujui permintaan sertifikat untuk setiap node agen sebelum node tersebut dapat mengambil konfigurasi. Node agen akan meminta sertifikat untuk pertama kali mencoba dijalankan.
Masuk ke server dalang dan jalankan perintah di bawah ini untuk melihat permintaan yang luar biasa.
sudo /opt/puppetlabs/bin/puppetserver ca list
Keluaran:
Requested Certificates: client.itzgeek.local (SHA256) 07:B1:57:5B:DE:AF:9F:4A:DF:4A:D1:CD:C4:2A:F9:9F:D9:76:CD:C5:F1:60:09:9C:B4:BA:76:D6:7B:3C:6F:0D
Jalankan perintah di bawah ini untuk menandatangani permintaan.
sudo /opt/puppetlabs/bin/puppetserver ca sign --certname client.itzgeek.local
Keluaran:
Successfully signed certificate request for client.itzgeek.local
Untuk menandatangani semua permintaan penandatanganan sertifikat dalam satu perintah.
sudo /opt/puppetlabs/bin/puppetserver ca sign --all
Dalam beberapa kasus, Anda mungkin perlu mencabut sertifikat node tertentu untuk membacanya kembali. Ganti
sudo /opt/puppetlabs/bin/puppetserver ca revoke --certname <AGENT_NAME>
Daftar semua permintaan yang ditandatangani dan tidak ditandatangani. Anda harus berjalan di server master.
sudo /opt/puppetlabs/bin/puppetserver ca list --all
Keluaran:
Signed Certificates: server.itzgeek.local (SHA256) E5:A4:93:45:EF:82:3B:FF:6E:36:D2:9A:F0:75:15:67:94:33:06:2F:84:9F:D1:45:CE:C6:1C:86:D4:57:B8:25 alt names: ["DNS:server.itzgeek.local", "DNS:server", "DNS:server.itzgeek.local"] client.itzgeek.local (SHA256) AB:3B:F0:D0:62:69:50:DD:50:45:CE:AD:A5:2C:4F:9E:EB:19:D6:C6:9C:34:A3:C5:CD:84:8F:BA:50:04:4A:D0
Verifikasi Agen Boneka
Setelah master Wayang menandatangani sertifikat klien Anda, jalankan perintah berikut pada mesin klien untuk mengujinya.
sudo /opt/puppetlabs/bin/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 '1558888335' Notice: Applied catalog in 0.02 seconds
Buat manifes
Manifest adalah file data yang berisi konfigurasi klien, ditulis dalam bahasa deklaratif Wayang atau Ruby DSL. Bagian ini mencakup manifes dasar untuk membuat direktori serta file di mesin klien.
File manifes boneka utama ada di /etc/puppetlabs/code/environments/production/manifests direktori. Buat file manifes baru.
sudo nano /etc/puppetlabs/code/environments/production/manifests/site.pp
Sekarang tambahkan baris berikut ke manifes untuk membuat direktori pada node klien.
node 'client.itzgeek.local' { # Applies only to mentioned node. If nothing mentioned, applies to all. file { '/tmp/puppetdir': # Resource type file ensure => 'directory', # Create as a diectory owner => 'root', # Ownership group => 'root', # Group Name mode => '0755', # Directory permissions } }Jika variabel simpul tidak disetel, manifes ini akan berlaku untuk semua simpul yang terhubung ke dalang.
Sekarang, jalankan perintah berikut pada node klien untuk mengambil konfigurasi.
sudo /opt/puppetlabs/bin/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 '1558888460' Notice: /Stage[main]/Main/Node[client.itzgeek.local]/File[/tmp/puppetdir]/ensure: created Notice: Applied catalog in 0.16 seconds
Verifikasi bahwa direktori telah dibuat pada node klien.
ls -ld /tmp/puppetdir/
Keluaran:
drwxr-xr-x 2 root root 4096 May 26 22:03 /tmp/puppetdir/
Mari kita 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/puppetfile': # 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" # Content of the file } }
Anda dapat membuka mesin klien dan mengambil katalog seperti yang ditunjukkan pada contoh sebelumnya atau menunggu selama 15 menit untuk menerapkan katalog secara otomatis.
Kesimpulan
Saya harap posting ini membantu Anda menginstal Puppet Server di Ubuntu 18.04 / Ubuntu 16.04 &Debian 9. Silakan bagikan tanggapan Anda di bagian komentar.