GNU/Linux >> Belajar Linux >  >> Debian

Cara Install Puppet 6.x Di Ubuntu 18.04 / Ubuntu 16.04 &Debian 9

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, ) .

Wayang akan mengambil nama host dan boneka sistem Anda sebagai nama alternatif DNS untuk Server Wayang. Jadi, Anda perlu menggunakan server= atau server=puppet dalam file konfigurasi agen 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.conf
Setel 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 dengan nama host klien Anda.

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.


Debian
  1. Cara Menginstal Server Redis di Debian 11

  2. Cara Menginstal ProFTPD di Debian 8

  3. Cara Menginstal Server MySQL di Debian 9

  1. Cara Memasang Server Minecraft di Debian 9

  2. Cara Install Puppet 6.x Di Ubuntu 18.04 / Ubuntu 16.04 &Debian 9

  3. Cara Menginstal MySQL 8.0 / 5.7 di Debian 11 / Debian 10

  1. Cara menginstal SuiteCRM di Debian 9

  2. Cara menginstal MySQL 8 di Debian 10

  3. Cara Install Puppet Server dan Agent di Debian 11