Memulai Panduan untuk Manajemen Server Menggunakan Boneka

Memulai Panduan untuk Manajemen Server Menggunakan Boneka

Perkenalan

Boneka adalah utilitas manajemen konfigurasi open source yang memungkinkan pengguna untuk secara otomatis dan jika diperlukan juga mengelola beberapa sistem dan konfigurasinya dari jarak jauh dan konfigurasinya. Boneka adalah deklaratif, yang berarti bahwa pengguna hanya perlu meminta keadaan layanan atau sumber daya yang tidak benar -benar memikirkan bagaimana keadaan ini akan dicapai.

Dengan kata lain bayangkan Anda adalah administrator sistem yang mengelola ratusan sistem dan perlu memastikan bahwa sumber daya tertentu seperti itu Halo Paket diinstal. Untuk mencapai ini dengan cara tradisional administrasi sistem, pengguna admin perlu menjalani beberapa pemeriksaan seperti keadaan saat ini dari instalasi paket, jenis platform sistem operasi, perintah instalasi yang akan digunakan sebelum instalasi paket yang sebenarnya dilakukan. Menjadi boneka sebagai deklaratif, pengguna hanya perlu menentukan keadaan paket dan boneka yang diinginkan akan mengurus sisanya. Jika paket kami "halo" diinstal boneka tidak akan mengambil tindakan, sedangkan jika paket tidak diinstal itu akan menginstalnya.

Skenario

Dalam skenario kami, kami tidak akan menjalankan ratusan sistem operasi dan berupaya mengelolanya. Tujuan kami akan jauh lebih sederhana dari itu. Sebenarnya kita hanya akan menjalankan dua sistem terpisah yang menjalankan boneka master dan agen boneka. Dengan demikian melalui server boneka master kami akan mencoba mengkonfigurasi simpul jarak jauh dan menginstal paket "halo" menggunakan agen boneka. Ini akan dilakukan dengan konfigurasi minimum yang mungkin.

Terminologi

  • Master Wayang - Server Pusat yang meng -host dan mengkompilasi semua manifes konfigurasi agen
  • Agen Puppet - Layanan yang berjalan pada simpul dan secara berkala memeriksa status konfigurasi dengan Master Puppet Server dan mengambil manifes konfigurasi terkini saat ini
  • Manifes - File Konfigurasi yang dipertukarkan antara boneka Muster dan Agen Puppet
  • Node - Sistem Operasi yang dijalankan Layanan Boneka

Pengaturan Skenario

Sepanjang tutorial ini saya akan merujuk kedua host hanya sebagai menguasai Dan node1. Sistem operasi yang digunakan pada keduanya menguasai Dan node1 Contoh Debian 8 Jessie. Ubuntu Linux juga dapat digunakan sebagai alternatif untuk mengikuti tutorial ini. Konfigurasi jaringan yang mendasarinya tidak relevan. Namun, diharapkan itu node1 dapat menyelesaikan menguasai host dengan namanya dan kedua host terhubung dan pengaturan firewall yang tepat diterapkan untuk memungkinkan boneka menguasai Dan node1 Agen untuk berkomunikasi:

root@node1:/# ping -c 1 master ping master (172.17.0.1): 56 byte data 64 byte dari 172.17.0.1: icmp_seq = 0 ttl = 64 waktu = 0.083 MS --- Statistik Ping Master --- 1 paket yang ditransmisikan, 1 paket diterima, 0% Paket kehilangan mini-perjalanan/rata-rata/maks/stddev = 0.083/0.083/0.083/0.000 ms 

CATATAN: Baca Lampiran Tentang Cara Mengatur Skenario Di atas dengan mudah dengan Docker.

Instalasi dan Konfigurasi Master Pepper

Mari kita mulai dengan pemasangan master boneka:

root@master: ~# apt-get install puppetmaster-penumpang 

Perintah di atas akan menginstal boneka di samping dengan Apache dan penumpang. Jadi alih -alih menggunakan server Webrick khas, kami akan melibatkan penumpang Apache untuk menjalankan Wayang di port 8140. File konfigurasi penumpang Apache yang dihasilkan secara default dan otomatis dapat ditempatkan di bawah /etc/apache2/situs-tersedia/dalang.conf:

# Konfigurasi host virtual Apache 2 ini menunjukkan cara menggunakan boneka sebagai rak # aplikasi melalui penumpang. Lihat # http: // docs.Puppetlabs.com/guides/penumpang.html untuk informasi lebih lanjut. # Anda juga dapat menggunakan konfigurasi yang disertakan.file ru untuk menjalankan boneka dengan server rak # lain, bukan penumpang. # Anda mungkin ingin menyetel pengaturan ini, penumpang performa pada penumpangaxpoolsize 12 penumpang 1500 # penumpang 1000 penumpang 1000 penumpang. EECDH+ARSA+SHA256: EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLV3:!Anull:!Enull:!RENDAH:!3des:!MD5:!Exp:!PSK:!DSS:!RC4:!BENIH:!IDE:!ECDSA: Kedh: Camellia256-Sha: AES256-SHA: Camellia128-Sha: AES128-SSLHONORCIPHERORDER ON SSLCERTIFIKATEFILE/VAR/LIB/PUPPET/SSL/CERT/MASTER.PEM SSLCERTIFICATEKEYFILE/VAR/LIB/PUPPET/SSL/private_keys/Master.PEM SSLCertificateChainFile/var/lib/puppet/SSL/CERTS/CA.PEM SSLCACERTIFIKATEFILE/VAR/LIB/PUPPET/SSL/CERTS/CA.PEM # Jika Apache mengeluh tentang tanda tangan yang tidak valid pada CRL, Anda dapat mencoba menonaktifkan # CRL memeriksa dengan mengomentari baris berikutnya, tetapi ini tidak disarankan. SslcarevocationFile/var/lib/puppet/ssl/ca/ca_crl.PEM # Apache 2.4 memperkenalkan arahan SSLCarEvocationCheck dan mengaturnya ke None # yang secara efektif menonaktifkan pemeriksaan CRL; Jika Anda menggunakan Apache 2.4+ Anda harus # tentukan 'rantai sslcarevocationCheck' untuk benar -benar menggunakan CRL. # SSLCAREVOCATIONCHECK Rantai SSLVERIFIFYCLIENT OPTIONAL SSLVERIFYDEPTH 1 # Opsi 'EksportCertData' diperlukan untuk peringatan sertifikat kadaluwarsa agen SSLOPtions SSLOPTIONS +STDENVVARS +ExportCertData # HEADER ini perlu ditetapkan jika menggunakan Loadbalancer atau Proxy Reverhead #-FXETEHEKER # UNDEREDED THE-FORDED TEHEDERED TEHETER PERUBAHAN TIDAK PERLU Jika menggunakan balanker atau prodlead noad-fxorer # prodead-fxorer # -Subject %ssl_client_s_dn e requestHeader set x-client-dn %ssl_client_s_dn e requestHeader set x-client-verifikasi %ssl_client_verify e documentroot Tidak ada pesanan yang diizinkan, tolak izinkan dari semua   

Melihat file konfigurasi di atas kita dapat melihat sejumlah sertifikat SSL yang dihasilkan berdasarkan nama host sistem. Konfirmasikan bahwa semua jalur sertifikat yang terdaftar menunjuk ke sertifikat SSL boneka yang benar. Jika tidak, sertifikat SSL baru perlu dihasilkan. Jika Anda perlu menghasilkan sertifikat baru terlebih dahulu, hapus sertifikat saat ini:

root@master: ~# rm -rf/var/lib/puppet/ssl 

Selanjutnya, jalankan boneka di latar depan untuk melihat sertifikat baru Anda untuk dihasilkan. Setelah selesai, hentikan proses dengan kombinasi kunci CTRL+C:

root@master: ~# boneka master --verbose ---no-daemonize Info: Membuat tombol SSL baru untuk CA Info: Membuat Permintaan Sertifikat SSL Baru untuk CA Info: Permintaan Permintaan Sertifikat (SHA256): FA: D8: 2A: 0F: B4: 0B: 91: 8C: 01: Iklan: 71: B4: 49: 66: 1F: B1: 38: Be: A4: 4E: AF: 76: 16: D2: 97: 50: C8: A3: 8F: 35: CC: F2 PEMBERITAHUAN: Permintaan sertifikat yang ditandatangani untuk CA Info: Membuat Daftar Pencabutan Sertifikat Baru Info: Membuat Kunci SSL Baru Untuk Info Master: CSR_ATtributes File Loading dari/etc/puppet/csr_attributes.Info YAML: Membuat Permintaan Sertifikat SSL Baru untuk Info Master: Permintaan Permintaan Sertifikat (SHA256): 43: 67: 42: 68: 64: 73: 83: F7: 36: 2B: 2E: 6F: 06: 20: 65: 87: AB: 61: 96: 2A: EB: B2: 91: A9: 58: 8E: 3F: F0: 26: 63: C3: 00 PEMBERITAHUAN: MASTER memiliki permintaan Sertifikat Tunggu Permintaan: Tanda Ditandatangani Permintaan Sertifikat untuk Master Pemberitahuan: Menghapus File Wayang :: SSL :: CertificateRequest Master at '/var/lib/puppet/ssl/ca/permintaan/master.PEMI 'PEMBERITAHUAN: Menghapus file boneka :: ssl :: CertificateRequest Master at'/var/lib/puppet/ssl/sertifikat_requests/master.PEMBERIAN PEM ': Mulai Master Boneka Versi 3.7.2 ^CNOTICE: Tangkap int; menelepon berhenti 

Sebelum kita memulai master boneka kita, pertama -tama kita perlu membuat manifes konfigurasi kosong default:

root@master: ~#>/etc/puppet/manifes/situs.pp 

Semua siap untuk mengaktifkan master boneka untuk memulai setelah reboot:

root@master: ~# systemctl Aktifkan status sinkronisasi apache2 untuk apache2.Layanan dengan sysvinit menggunakan pembaruan-rc.D… Executing/USR/SBIN/UPDATE-RC.D APACHE2 Default Executing/USR/SBIN/UPDATE-RC.D APACHE2 Aktifkan 

Dan mulai master boneka dengan memulai Webserver Apache:

root@master: ~# service apache2 mulai [ok] mulai server web: apache2. root@master: ~# 

Konfirmasikan bahwa boneka sedang berjalan

# PS AUX USER PID %CPU %MEM VSZ RSS TTY Stat Start Time Command Root 1 0.0 0.0 20228 2016 ? SS 11:53 0:00 /BIN /BASH ROOT 1455 0.0 0.0 98272 4600 ? SS 12:40 0:00/USR/SBIN/APACHE2 -K MULAI ROOT 1458 0.0 0.0 223228 1920 ? SSL 12:40 0:00 ROOTWATCHDOG ROOT 1461 0.0 0.0 506784 4156 ? SL 12:40 0:00 PUSTENTERHELPERAGENT NOTODIA 1466 0.0 0.0 226648 4892 ? SL 12:40 0:00 PUSTERLOGGINGAGEN WWW-DATA 1476 0.0 0.0 385300 5116 ? SL 12:40 0:00/usr/sbin/apache2 -k Mulai www -data 1477 0.0 0.0 450880 5608 ? SL 12:40 0:00/USR/SBIN/APACHE2 -K MULAI ROOT 1601 0.0 0.0 17484 1140 ? R+ 12:44 0:00 PS AUX 

dan mendengarkan di port 8140:

# netstat -ant koneksi internet aktif (server dan mapan) proto recv-q kirim-q alamat lokal alamat asing status tcp6 0 0 ::: 8140 :::* Dengarkan tcp6 0 0 ::: 80 :::* Dengarkan tcp6 0 0 ::: 443 :::* Dengar 

Konfigurasi Node Boneka

Saat ini server master kami berjalan dan mengharapkan permintaan dari agen boneka dan oleh karena itu sekarang saatnya untuk menginstal agen boneka kami node1:

# apt-get install puppet 

Selanjutnya, kita perlu mengkonfigurasi boneka untuk bertindak sebagai agen dengan menghapus arahan default server master dari file konfigurasinya /etc/boneka/boneka.conf:
DARI:

[main] logdir =/var/log/puppet vardir =/var/lib/puppet ssldir =/var/lib/puppet/ssl rundir =/var/run/puppet factpath = $ vardir/lib/facter prerun_command =/etc/ boneka/etckeeper-commit-pre postrun_command =/etc/puppet/etckeeper-commit-post [master] # Ini diperlukan saat dalang dijalankan oleh penumpang # dan dapat dengan aman dihapus jika Webrick digunakan. ssl_client_header = ssl_client_s_dn ssl_client_verify_header = ssl_client_verify 

KE:

[main] logdir =/var/log/puppet vardir =/var/lib/puppet ssldir =/var/lib/puppet/ssl rundir =/var/run/puppet factpath = $ vardir/lib/facter prerun_command =/etc/ Puppet/etckeeper-Commit-Pre Postrun_Command =/etc/puppet/etckeeper-commit-post [agen] server = master 

Arahan di atas server = master mendefinisikan server master untuk dihubungkan oleh agen boneka. Dimana kata menguasai Dalam kasus kami sebagai nama host yang diselesaikan untuk alamat IP Master Server:

# ping -c 1 master master (172.17.0.43): 56 byte data 64 byte dari 172.17.0.43: icmp_seq = 0 ttl = 64 waktu = 0.226 MS --- Statistik Ping Master --- 1 paket yang ditransmisikan, 1 paket yang diterima, 0% Paket Kehilangan Bulat Min/AVG/MAX/STDDEV = 0.226/0.226/0.226/0.000 ms 

Bagian instalasi selesai dan apa yang tersisa adalah untuk memungkinkan boneka untuk memulai setelah reboot dan memulai boneka:

# Systemctl Mengaktifkan status sinkronisasi boneka untuk boneka.Layanan dengan sysvinit menggunakan pembaruan-rc.D… Executing/USR/SBIN/UPDATE-RC.D Wuppet Defaults Executing/USR/SBIN/UPDATE-RC.d Wayang Aktifkan root@node1:/# Service Puppet Start [OK] Mulai Agen Puppet. 

Selanjutnya, secara default agen dinonaktifkan setelah instalasi pada host baru yang tidak disukai. Untuk mengaktifkan agen boneka yang perlu kita jalankan:

root@node1:/# agen boneka --enable 

Sertifikat Agen Penandatanganan

Kedua host menguasai Dan node1 sedang dan berjalan. Kumpulan konfigurasi terakhir yang diperlukan untuk membuat master dan agen berbicara adalah untuk menandatangani node1Permintaan sertifikat. Setelah kami memulai agen boneka node1 permintaan tanda sertifikat dikeluarkan menguasai Server:

root@master:/# Daftar sertifikat boneka "node1" (SHA256) 2C: 62: B3: A4: 1A: 66: 0A: 14: 17: 93: 86: E4: F8: 1C: E3: 4E: 25: F8 : 7a: 7c: fb: fc: 6b: 83: 97: f1: c8: 21: dd: 52: e4: 91 

Secara default setiap permintaan tanda sertifikat harus ditandatangani secara manual:

root@master:/# boneka sertifikat tanda node1 PEMBERITAHUAN: Permintaan sertifikat yang ditandatangani untuk Node1 Pemberitahuan: Menghapus File Puppet :: SSL :: CertificateRequest Node1 at '/var/lib/boneka/ssl/ca/permintaan/node1.PEM ' 

Pada tahap ini, master kami harus menjadi tuan rumah dua sertifikat yang ditandatangani:

 root@master:/# daftar sertifikat boneka -semua + "master" (sha256) ee: e0: 0a: 5c: 05: 17: fa: 11: 05: e8: d0: 8c: 29: fc: d2: 1f : E0: 2F: 27: A8: 66: 70: D7: 4B: A1: 62: 7E: BA: F4: 7C: 3D: E8 + "Node1" (SHA256) 99: DC: 41: BA: 26: Fe : 89: 98: DC: D6: F0: 34: 64: 7A: DF: E2: 2F: 0E: 84: 48: 76: 6D: 75: 81: BD: EF: 01: 44: CB: 08: D9 : 2a 

Memicu permintaan konfigurasi boneka

Saatnya membuat manifes konfigurasi pertama. Seperti yang telah disebutkan di atas, kita sekarang akan memastikan paket itu Halo tersedia node1. Buka manifes default /etc/boneka/manifes/situs.pp file di menguasai Host dan tambahkan konfigurasi simpul sederhana berikut:

paket "halo": pastikan => "diinstal" 

Agen kami di node1 diatur secara default untuk mengambil konfigurasi master setiap 30 menit. Jika kami tidak ingin menunggu, kami dapat memicu permintaan konfigurasi secara manual:

root@node1:/# hello bash: halo: perintah tidak ditemukan 

Paket halo saat ini tidak tersedia node1. Memicu permintaan konfigurasi baru secara manual:

root@node1:/# agen boneka -Tes Info: Caching Certificate_revocation_list untuk CA Info: Mengambil PluginFacts Info: Mengambil Info Plugin: Katalog Caching untuk Node1 Info: Menerapkan Versi Konfigurasi '1434159185' Pemberitahuan:/Tahap [Main]/Main/Paket [halo]/Pastikan: Pastikan diubah 'dibersihkan' menjadi info 'menyajikan': Membuat file negara/var/lib/boneka/status/negara bagian.PEMBERITAHUAN YAML: Katalog jadi dijalankan dalam 4.00 detik 

Dari output di atas kita dapat melihat bahwa konfigurasi baru diterapkan dan paket "Hello" sekarang tersedia:

root@node1:/# halo halo, dunia! 

Kesimpulan

Teks di atas menunjukkan prosedur konfigurasi boneka yang sederhana. Namun, itu harus berfungsi sebagai titik awal untuk penyebaran multi -node. Untuk menambahkan lebih banyak node cukup kunjungi kembali di atas Bagian konfigurasi node boneka Dan Sertifikat Agen Penandatanganan Bagian dari artikel ini.

Penyelesaian masalah

Apache2: Tidak dapat secara andal menentukan nama domain yang sepenuhnya memenuhi syarat server, menggunakan 172.17.0.43. Atur arahan 'servername' secara global untuk menekan pesan ini

# echo "servername 'hostname'" >>/etc/apache2/apache2.conf 

PEMBERITAHUAN: Melewati Klien Konfigurasi Boneka; secara administratif dinonaktifkan (alasan: 'dinonaktifkan secara default pada instalasi lama yang baru atau tidak dikonfigurasi');
Gunakan 'Agen Boneka -Sable' untuk mengaktifkan kembali.

root@node1:/# agen boneka --enable 

Lampiran

Pengaturan Skenario Cepat Menggunakan Docker

Itu LinuxConfig/Sandbox adalah gambar Docker yang berisi alat pengeditan teks dasar dan jaringan untuk membantu Anda mengonfigurasi dan memecahkan masalah Anda Master dan Agen Boneka.
Pertama Mulai Master Boneka:

# Docker Run -It -H Master --name = Master LinuxConfig/Sandbox/Bin/Bash 

Setelah master boneka bangun dan mulai mulai node1:

# Docker run -it -h node1 --name = node1 -link master: master linuxconfig/sandbox/bin/bash 

Tutorial Linux Terkait:

  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Ekspresi reguler Python dengan contoh
  • Bash Script: Hello World Contoh
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Cara Mengatur Server OpenVPN di Ubuntu 20.04
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Bagaimana melakukan operasi administrasi dengan ansible…
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Menangani input pengguna dalam skrip bash
  • Cara menghapus bloatware dari ponsel samsung android Anda…