Memulakan Panduan untuk Pengurusan Pelayan menggunakan boneka

Memulakan Panduan untuk Pengurusan Pelayan menggunakan boneka

Pengenalan

Boneka adalah utiliti pengurusan konfigurasi sumber terbuka yang membolehkan pengguna secara automatik dan jika diperlukan juga menguruskan pelbagai sistem dan konfigurasinya jauh. Boneka adalah deklaratif, yang bermaksud bahawa pengguna hanya perlu meminta keadaan perkhidmatan atau sumber yang tidak benar -benar memikirkan bagaimana keadaan ini akan dicapai.

Dengan kata lain bayangkan bahawa anda adalah pentadbir sistem yang menguruskan beratus -ratus sistem dan perlu memastikan bahawa sumber tertentu seperti Helo pakej dipasang. Untuk mencapai ini dengan cara tradisional pentadbiran sistem pengguna pentadbir perlu menjalani pelbagai cek seperti keadaan semasa pemasangan pakej, jenis platform sistem operasi, perintah pemasangan yang akan digunakan sebelum pemasangan pakej sebenar berlaku. Menjadi boneka deklaratif, pengguna hanya perlu menentukan keadaan pakej dan boneka yang dikehendaki akan menjaga selebihnya. Sekiranya pakej kami "Hello" dipasang boneka tidak akan mengambil tindakan, sedangkan jika pakej tidak dipasang, ia akan memasangnya.

Senario

Dalam senario kami, kami tidak akan menjalankan beratus -ratus sistem operasi dan cuba menguruskannya. Matlamat kami akan lebih mudah daripada itu. Malah kita akan menjalankan hanya dua sistem berasingan yang menjalankan tuan boneka dan ejen boneka. Oleh itu melalui pelayan boneka induk kami akan cuba mengkonfigurasi nod jauh dan memasang pakej "hello" menggunakan ejen boneka. Ini akan dilakukan dengan konfigurasi minimum yang mungkin.

Terminologi

  • Master Boneka - Pelayan Pusat yang menganjurkan dan menyusun semua konfigurasi ejen yang ditunjukkan
  • Ejen Boneka - Perkhidmatan yang berjalan pada nod dan secara berkala memeriksa status konfigurasi dengan pelayan boneka induk dan mengambil konfigurasi terkini semasa
  • Manifest - fail konfigurasi yang ditukar antara ejen boneka dan ejen boneka
  • Node - sistem operasi yang perkhidmatan boneka berjalan

Tetapan senario

Sepanjang tutorial ini saya akan merujuk kepada kedua -dua tuan rumah semata -mata tuan dan node1. Sistem operasi yang digunakan pada kedua -duanya tuan dan node1 Contohnya ialah Debian 8 Jessie. Ubuntu Linux juga boleh digunakan sebagai alternatif untuk mengikuti tutorial ini. Konfigurasi rangkaian yang mendasari tidak relevan. Walau bagaimanapun, diharapkan bahawa node1 boleh menyelesaikan tuan Tuan rumah oleh namanya dan kedua -dua tuan rumah disambungkan dan tetapan firewall yang betul digunakan untuk membolehkan boneka tuan dan node1 ejen untuk berkomunikasi:

root@node1:/# ping -c 1 master ping master (172.17.0.1): 56 bait data 64 bait dari 172.17.0.1: icmp_seq = 0 ttl = 64 time = 0.083 MS --- Statistik Ping Master --- 1 paket dihantar, 1 paket yang diterima, 0% Packet Loss Round-Trip Min/AVG/MAX/STDDEV = 0.083/0.083/0.083/0.000 ms 

CATATAN: Baca Lampiran mengenai Cara Menyiapkan Senario Di atas dengan mudah dengan Docker.

Pemasangan dan konfigurasi induk pupper

Mari kita mulakan dengan pemasangan Master Boneka:

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

Perintah di atas akan memasang boneka bersama dengan Apache dan penumpang. Oleh itu, bukannya menggunakan pelayan Webrick yang tipikal, kami akan melibatkan penumpang Apache untuk menjalankan tuan boneka di port 8140. Fail konfigurasi penumpang Apache yang lalai dan automatik boleh ditempatkan di bawah /etc/apache2/laman web yang tersedia/boneka.Conf:

# Konfigurasi hos maya Apache 2 ini menunjukkan cara menggunakan boneka sebagai aplikasi # rak melalui penumpang. Lihat # http: // docs.Puppetlabs.com/panduan/penumpang.html untuk maklumat lanjut. # Anda juga boleh menggunakan konfigurasi yang disertakan.RU Fail untuk menjalankan boneka dengan rak # lain pelayan dan bukannya penumpang. # # EECDH+ARSA+SHA256: EECDH:+Camellia256:+AES256:+Camellia128:+AES128:+SSLV3:!Anull:!Enull:!Rendah:!3des:!MD5:!Exp:!PSK:!DSS:!RC4:!Benih:!Idea:!ECDSA: KEDH: Camellia256-Sha: AES256-SHA: Camellia128-Sha: AES128-sslhonorcipherorder pada sslcertificateFile/var/lib/wayang/ssl/certs/master/master/master/master/master/master.PEM SSLCertificateKeyfile/var/lib/boneka/ssl/private_keys/master.PEM SSLCertificatechainfile/var/lib/boneka/ssl/certs/ca.PEM SSLCACertificateFile/var/lib/boneka/ssl/certs/ca.PEM # Jika Apache mengadu tentang tandatangan yang tidak sah di CRL, anda boleh cuba melumpuhkan # CRL menyemak dengan mengulas baris seterusnya, tetapi ini tidak disyorkan. Sslcarevocationfile/var/lib/wayang/ssl/ca/ca_crl.PEM # Apache 2.4 Memperkenalkan Arahan SSLCareVocationCheck dan menetapkannya kepada None # yang secara berkesan melumpuhkan pemeriksaan CRL; Sekiranya anda menggunakan Apache 2.4+ anda mesti # menentukan 'sslcarevocationcheck chain' untuk benar -benar menggunakan CRL. # Sslcarevocationcheck chain sslverifyclient sslverifydepth 1 # pilihan 'exportcertdata' diperlukan untuk peringatan tamat tempoh ejen ssloptions +stdenvvars +exportcertdata # -Subject %SSL_CLIENT_S_DNe RequestHeader set X-Client-DN %SSL_CLIENT_S_DNe RequestHeader set X-Client-Verify %SSL_CLIENT_VERIFYe DocumentRoot /usr/share/puppet/rack/puppetmasterd/public/ RackBaseURI /  Options None AllowOverride Tiada pesanan membenarkan, menafikan membenarkan dari semua   

Melihat fail konfigurasi di atas, kami dapat melihat beberapa sijil SSL yang dijana berdasarkan nama hos sistem. Sahkan bahawa semua laluan sijil yang disenaraikan menunjuk kepada sijil SSL boneka yang betul. Jika tidak, sijil SSL baru perlu dijana. Jika anda perlu menjana sijil baru terlebih dahulu, keluarkan sijil semasa:

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

Seterusnya, jalankan boneka di latar depan untuk melihat sijil baru anda untuk dihasilkan. Apabila selesai, hentikan proses dengan kombinasi kunci Ctrl+C:

Root@Master: ~# Master Boneka-Peribahasa-Tidak ada maklumat-maklumat: Membuat Kunci SSL Baru Untuk Maklumat CA: Mewujudkan Permintaan Sijil SSL Baru Untuk Maklumat CA: Permintaan Sijil Cap jari (SHA256): FA: D8: 2A: 0F: B4: 0B: 91: 8C: 01: AD: 71: B4: 49: 66: 1F: B1: 38: BE: A4: 4E: AF: 76: 16: D2: 97: 50: C8: A3: 8F: 35: CC: F2 Notis: Permintaan Sijil yang Ditandatangani Untuk Maklumat CA: Membuat Maklumat Senarai Pembatalan Sijil Baru: Membuat Kunci SSL Baru untuk Maklumat Master: CSR_ATTRIBUTES Loading From/ETC/PAMPET/CSR_ATTRIBUTES.INFO YAML: Mencipta Permintaan Sijil SSL Baru untuk Maklumat Master: Permintaan Sijil Cap jari (SHA256): 43: 67: 42: 68: 64: 73: 83: F7: 36: 2b: 2f: 06: 20: 65: 87: AB: 61: 96: 2a: EB: B2: 91: A9: 58: 8e: 3f: F0: 26: 63: C3: 00 Notis: Master mempunyai Permintaan Permintaan Sijil Menunggu: Permintaan Sijil yang Ditandatangani untuk Notis Master: Mengalih keluar Fail Boneka :: SSL :: Sertifisi Master di '/var/lib/boneka/ssl/ca/permintaan/tuan.PEM 'NOTIS: Menghapuskan Fail Wayang :: SSL :: Sertifisi Master di'/var/lib/boneka/ssl/sijil_requests/master.Notis PEM: Memulakan Boneka Master Versi 3.7.2 ^cnotice: ditangkap int; Memanggil berhenti 

Sebelum kita memulakan tuan boneka kita, kita perlu membuat konfigurasi kosong lalai:

root@master: ~#>/etc/wayang/manifes/laman web.ms 

Semua sudah bersedia untuk membolehkan Master Boneka bermula selepas reboot:

Root@Master: ~# Systemctl Dayakan Apache2 Penyegerakan Negeri untuk Apache2.perkhidmatan dengan sysvinit menggunakan kemas kini-rc.D ... EXECTING/USR/SBIN/UPDATE-RC.D Apache2 Lalai Melaksanakan/USR/SBIN/UPDATE-RC.d Apache2 Dayakan 

Dan mulakan tuan boneka dengan memulakan webserver Apache:

Root@Master: ~# Perkhidmatan Apache2 Mula [OK] Memulakan Pelayan Web: Apache2. root@master: ~# 

Sahkan bahawa boneka sedang berjalan

# ps aux pengguna pid %cpu %mem vsz rss tty stat stat 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 mula akar 1458 0.0 0.0 223228 1920 ? SSL 12:40 0:00 penumpang root 1461 0.0 0.0 506784 4156 ? SL 12:40 0:00 PenumpangHelPeragent tiada siapa 1466 0.0 0.0 226648 4892 ? SL 12:40 0:00 PenumpangLoggingagent www-data 1476 0.0 0.0 385300 5116 ? SL 12:40 0:00/usr/sbin/apache2 -k Mula www -data 1477 0.0 0.0 450880 5608 ? SL 12:40 0:00/usr/sbin/apache2 -k mula akar 1601 0.0 0.0 17484 1140 ? R+ 12:44 0:00 ps aux 

dan mendengar di port 8140:

# Netstat -Ont Active Internet Connections (Servers and Ditubuhkan) Proto Recv-Q Send-Q Alamat Tempatan Alamat Asing Negeri TCP6 0 0 ::: 8140 :::* Dengar tcp6 0 0 ::: 80 :::* Dengar tcp6 0 0 ::: 443 :::* Dengar 

Konfigurasi nod boneka

Pada masa ini pelayan induk kami sedang berjalan dan mengharapkan permintaan dari ejen boneka dan oleh itu sudah tiba masanya untuk memasang ejen boneka kami node1:

# apt-get pemasangan boneka 

Seterusnya, kita perlu mengkonfigurasi boneka untuk bertindak sebagai ejen dengan mengeluarkan arahan lalai pelayan induk dari fail konfigurasinya /etc/boneka/boneka.Conf:
Dari:

[Utama] logdir =/var/log/boneka vardir =/var/lib/boneka ssldir =/var/lib/boneka/ssl rundir =/var/run/puppet factpath = $ vardir/lib/facter prerun_command =/etc/ boneka/etckeeper-commit-pre postrun_command =/etc/wayang/etckeeper-commit-post [master] # Ini diperlukan apabila boneka dikendalikan oleh penumpang # dan dengan selamat boleh dikeluarkan jika Webrick digunakan. ssl_client_header = ssl_client_s_dn ssl_client_verify_header = ssl_client_verify 

Ke:

[Utama] logdir =/var/log/boneka vardir =/var/lib/boneka ssldir =/var/lib/boneka/ssl rundir =/var/run/puppet factpath = $ vardir/lib/facter prerun_command =/etc/ boneka/etckeeper-commit-pre postrun_command =/etc/wayang/etckeeper-commit-post [Agent] Server = Master 

Arahan di atas pelayan = tuan mentakrifkan pelayan induk yang akan disambungkan oleh ejen boneka. Di mana perkataan tuan Dalam kes kami sebagai nama hos yang menyelesaikan untuk menguasai alamat IP pelayan:

# ping -c 1 Master Master Master (172.17.0.43): 56 bait data 64 bait dari 172.17.0.43: icmp_seq = 0 ttl = 64 time = 0.226 MS --- Statistik Ping Master --- 1 paket dihantar, 1 paket yang diterima, 0% Packet Loss Round-Trip Min/AVG/MAX/STDDEV = 0.226/0.226/0.226/0.000 ms 

Bahagian pemasangan dilakukan dan apa yang tersisa adalah untuk membolehkan boneka bermula selepas reboot dan memulakan boneka:

# Systemctl membolehkan keadaan penyegerakan boneka untuk boneka.perkhidmatan dengan sysvinit menggunakan kemas kini-rc.D ... EXECTING/USR/SBIN/UPDATE-RC.D Boneka Default Executing/USR/SBIN/UPDATE-RC.d boneka enable root@node1:/# Service wayang Mula [OK] Memulakan ejen boneka. 

Selain itu, secara lalai ejen itu dilumpuhkan selepas pemasangan pada tuan rumah yang tidak beroperasi baru. Untuk membolehkan ejen boneka kita perlu menjalankan:

root@node1:/# ejen boneka -boleh 

Sijil ejen menandatangani

Kedua -dua tuan rumah tuan dan node1 sedang berjalan dan berjalan. Set konfigurasi terakhir yang diperlukan untuk mendapatkan kedua -dua tuan dan ejen bercakap adalah menandatangani node1Permintaan sijil. Setelah kami memulakan ejen boneka di node1 Permintaan tanda sijil dikeluarkan kepada tuan pelayan:

Root@Master:/# Senarai Puppet Cert "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 lalai setiap permintaan tanda sijil mesti ditandatangani secara manual:

Root@Master:/# Puppet Cert Sign Node1 NOTIS: Permintaan Sijil Ditandatangani Node1 Notis: Mengeluarkan Fail Wayang :: SSL :: Sertifisi Node1 di '/var/lib/wayang/ssl/ca/permintaan/node1.mem ' 

Pada peringkat ini, tuan kami harus menjadi tuan rumah dua sijil yang ditandatangani:

 Root@Master:/# Senarai Certifik Wayang --All + "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 

Mencetuskan permintaan konfigurasi boneka

Sudah tiba masanya untuk membuat manifes konfigurasi pertama. Seperti yang telah disebutkan di atas, kita sekarang akan memastikan pakej itu Helo boleh didapati di node1. Buka manifes lalai /etc/wayang/manifes/laman web.ms fail pada tuan Hos dan tambahkan konfigurasi nod sederhana berikut:

pakej "hello": memastikan => "dipasang" 

Ejen kami node1 ditetapkan secara lalai untuk mendapatkan konfigurasi Master setiap 30 minit. Sekiranya kita tidak mahu menunggu, kita boleh mencetuskan permintaan konfigurasi secara manual:

root@node1:/# hello bash: hello: perintah tidak dijumpai 

Pakej Hello tidak tersedia pada masa ini node1. Mencetuskan permintaan konfigurasi baru secara manual:

root@node1:/# ejen boneka -Infott Info: Caching Certifice_Revocation_List untuk maklumat CA: Mendapatkan semula Info Pluginfacts: Mengambil Info Plugin: Katalog Caching untuk Info Node1: Memohon Versi Konfigurasi '1434159185' [Hello]/Pastikan: Pastikan berubah 'dibersihkan' ke 'sekarang' maklumat: Membuat fail negeri/var/lib/boneka/negeri/negeri.Notis yaml: katalog selesai dijalankan dalam 4.00 saat 

Dari output di atas, kita dapat melihat bahawa konfigurasi baru telah digunakan dan pakej "Hello" kini tersedia:

root@node1:/# hello hello, dunia! 

Kesimpulan

Teks di atas menunjukkan prosedur konfigurasi boneka yang sederhana. Walau bagaimanapun, ia harus berfungsi sebagai titik permulaan untuk penyebaran pelbagai nod. Untuk menambah lebih banyak nod hanya dikunjungi semula di atas Bahagian Konfigurasi Node Boneka dan Sijil ejen menandatangani bahagian artikel ini.

Penyelesaian masalah

APACHE2: Tidak boleh menentukan nama domain yang berkelayakan pelayan, menggunakan 172.17.0.43. Tetapkan Arahan 'ServerName' secara global untuk menindas mesej ini

# echo "ServerName 'Hostname'" >>/etc/apache2/apache2.Conf 

Notis: Melangkaui Pelanggan Konfigurasi Boneka; secara pentadbiran dilumpuhkan (sebab: 'dilumpuhkan secara lalai pada pemasangan lama yang baru atau tidak dikonfigurasikan');
Gunakan 'ejen boneka -enable' untuk membolehkan semula.

root@node1:/# ejen boneka -boleh 

Lampiran

Tetapan senario cepat menggunakan Docker

The Linuxconfig/Sandbox Adakah imej Docker yang mengandungi alat penyuntingan teks dan rangkaian asas untuk membantu anda mengkonfigurasi dan menyelesaikan masalah tuan dan ejen boneka.
Master Boneka Mula Pertama:

# Docker Run -it -H Master --Name = Master Linuxconfig/Sandbox/Bin/Bash 

Setelah Master Boneka sudah siap dan berjalan bermula node1:

# Docker Run -it -H Node1 --name = Node1 - -Link Master: Master Linuxconfig/Sandbox/Bin/Bash 

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Ungkapan biasa python dengan contoh
  • Skrip Bash: Hello World Contoh
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Cara Menyiapkan Pelayan OpenVPN di Ubuntu 20.04
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Cara Melaksanakan Operasi Pentadbiran dengan Ansible ..
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Mengendalikan input pengguna dalam skrip bash
  • Cara mengeluarkan bloatware dari Samsung Android Mobile anda ..