Cara Memasang Pelayan Chef, Workstation dan Chef Client di Ubuntu 18.04

Cara Memasang Pelayan Chef, Workstation dan Chef Client di Ubuntu 18.04

Chef adalah alat pengurusan konfigurasi berasaskan Ruby yang digunakan untuk menentukan infrastruktur sebagai kod. Ini membolehkan pengguna mengautomasikan pengurusan banyak nod dan mengekalkan konsistensi merentasi nod tersebut. Resipi mengisytiharkan keadaan yang dikehendaki untuk nod yang diuruskan dan dibuat di stesen kerja pengguna menggunakan pakej stesen kerja chef. Resipi anda diedarkan di seluruh nod melalui pelayan chef. Pelanggan Chef, yang dipasang pada setiap nod, bertanggungjawab memohon resipi pada nod yang sepadan. Panduan ini akan menunjukkan kepada anda cara memasang dan mengkonfigurasi pelayan koki dan stesen kerja chef. Kami juga akan bootstrap nod untuk menguruskan dengan Chef.

Dalam tutorial ini anda akan belajar:

  • Pasang dan konfigurasikan pelayan Chef
  • Buat Pengguna dan Organisasi Chef
  • Pasang dan konfigurasikan stesen kerja chef
  • Konfigurasikan pisau dan bootstrapping nod klien

Senibina Chef.

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Ubuntu Linux 18.04
Perisian Core Server Chef, Workstation Chef, Pelanggan Chef, Kit Pembangunan Chef
Yang lain Akses istimewa ke sistem linux anda sebagai akar atau melalui sudo perintah.
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Pasang dan konfigurasikan pelayan Chef

Pelayan Chef adalah hab interaksi antara semua stesen kerja dan nod di bawah pengurusan chef. Perubahan yang dibuat ke kod konfigurasi di stesen kerja ditolak ke pelayan chef, dan kemudian ditarik oleh klien chef nod untuk memohon konfigurasi.

Muat turun pelayan Chef terkini melalui menjalankan arahan di bawah:

# wget https: // pakej.Chef.IO/Fail/Stable/Chef-Server/12.18.14/Ubuntu/18.04/Chef-Server-Core_12.18.14-1_amd64.Deb 


Sekarang pasang pakej pelayan dengan arahan berikut:

# dpkg -I Chef-Server-Core_*.Deb 

Pelayan Chef termasuk utiliti baris arahan yang dipanggil Chef-Server-CTL. Jalankan Chef-Server-CTL untuk memulakan Perkhidmatan Pelayan Chef.

# Chef-Server-CTL Reconfigure 

Setelah konfigurasi pelayan Chef yang berjaya, anda akan melihat mesej di bawah dan periksa status pelayan chef juga.

Pelanggan Chef Selesai, 493/1100 Sumber Dikemas kini dalam 12 minit 02 Seconds Chef Server yang dikonfigurasi! 
root@Ubuntubox1: ~# Chef-Server-CTL Status Run: Bookshelf: (PID 1435) 6644S; Run: Log: (PID 1440) 6644S Run: Nginx: (PID 1235) 6653S; Run: Log: (PID 1744) 6631S RUN: OC_BIFROST: (PID 1196) 6657S; Run: Log: (PID 1203) 6657S Run: OC_ID: (PID 1220) 6655S; Run: Log: (PID 1227) 6655S Run: Opscode-Erchef: (PID 4376) 6432S; Run: Log: (PID 1508) 6644S Run: Opscode-Expander: (PID 1335) 6648S; Run: Log: (PID 1431) 6646S Run: Opscode-Solr4: (PID 1244) 6650s; Run: Log: (PID 1285) 6649S Run: PostgreSQL: (PID 1176) 6659S; Run: Log: (PID 1180) 6659S Run: Rabbitmq: (PID 4188) 6443S; Run: Log: (PID 1748) 6631S RUN: REDIS_LB: (PID 27397) 6931S; Jalankan: Log: (PID 1735) 6632S root@ubuntuBox1: ~# 

Buat Pengguna dan Organisasi Chef

Untuk menghubungkan stesen kerja dan nod ke pelayan Chef, buat pentadbir dan organisasi dengan kunci peribadi RSA yang berkaitan.
Dari direktori rumah, buat a .Direktori Chef untuk menyimpan kunci.

# mkdir .Chef 

Gunakan Chef-Server-CTL untuk membuat pengguna. Dalam contoh ini, tukar perkara berikut untuk memenuhi keperluan anda: user_name, first_name, last_name, e -mel, dan kata laluan. Laraskan user_name.PEM, dan tinggalkan .lanjutan PEM.

Chef-Server-CTL User-Create user_name first_name last_name e-mel 'kata laluan'-filename ~/.chef/user_name.PEM
root@ubuntuBox1: ~# Chef-Server-CTL User-Create Chefadmin Chef Administrator Chefadmin @@ UbuntuBox1.com '*******' -Filename ~/.Chef/Chefadmin.PEM 

Untuk melihat senarai semua pengguna di Server Chef anda mengeluarkan arahan berikut:

root@ubuntuBox1: ~# Chef-Server-CTL User-List Chefadmin Pivotal 

Buat organisasi dan tambahkan pengguna yang dibuat pada langkah sebelumnya. Ganti org_name dengan pengenal pendek untuk organisasi, org_full_name dengan nama lengkap organisasi, user_name dengan nama pengguna yang dibuat dalam langkah di atas dan org_name.PEM dengan pengecam pendek organisasi diikuti oleh .PEM.

chef-server-ctl org-create org_name "org_full_name" --association_user user_name-filename ~/.chef/org_name.PEM
root@ubuntubox1: ~# chef-server-ctl org-create chef-on-ubuntu "Infrastruktur Chef di Ubuntu 18.04 "--Association_user Chefadmin -Filename ~/.Chef/Chef-on-Ubuntu.PEM 


Untuk melihat senarai semua organisasi di pelayan Chef anda, gunakan arahan berikut:

root@ubuntuBox1: ~# chef-server-ctl org-list chef-on-ubuntu 

Dengan pelayan chef dipasang dan kekunci RSA yang dihasilkan, kami akan mula mengkonfigurasi stesen kerja chef. Workstation adalah di mana semua konfigurasi utama akan dibuat untuk nod anda.

Pasang dan konfigurasikan stesen kerja chef

Workstation Chef adalah di mana anda membuat dan mengkonfigurasi sebarang resipi, buku masakan, atribut, dan perubahan lain yang diperlukan untuk menguruskan nod anda. Walaupun ini boleh menjadi mesin tempatan yang menjalankan OS, ada manfaat untuk menjaga pelayan jauh sebagai stesen kerja anda supaya anda dapat mengaksesnya dari mana saja.

Dalam bahagian ini, anda akan memuat turun dan memasang pakej Workstation Chef, yang menyediakan semua alat juga disertakan dengan kit pembangunan chefdk, chef.

Muat turun stesen kerja chef terkini:

root@ubuntubox2: ~# wget https: // pakej.Chef.io/fail/stabil/chef-workstation/0.2.43/ubuntu/18.04/chef-workstation_0.2.43-1_amd64.Deb --2019-06-03 13: 35: 51-- https: // pakej.Chef.io/fail/stabil/chef-workstation/0.2.43/ubuntu/18.04/chef-workstation_0.2.43-1_amd64.Deb menyelesaikan pakej.Chef.IO (pakej.Chef.io) ... 151.101.142.110 menyambung ke pakej.Chef.IO (pakej.Chef.io) | 151.101.142.110 |: 443 ... bersambung. Permintaan HTTP Dihantar, Menunggu Respons ... 200 OK Panjang: 129713682 (124m) [Aplikasi/X-Debian-Package] Penjimatan ke: 'Chef-WorkStation_0.2.43-1_amd64.deb 'chef-workstation_0.2.43-1_amd64.Deb 100%[================================================ ====================================>] 123.70m 1.51MB/s pada 80-an 2019-06-03 13:37:17 (1.55 mb/s) - 'Chef -workstation_0.2.43-1_amd64.Deb 'Saved [129713682/129713682] 

Pasang stesen kerja chef:

root@ubuntuBox2: ~# dpkg -i chef -workstation_*.Deb Memilih Pakej-Kerja Pakej yang Tidak Dipilih Sebelum. (Pangkalan Data Membaca ... 117468 Fail dan Direktori yang Dipasang.) Bersiap untuk membongkar chef-workstation_0.2.43-1_amd64.Deb ... Membongkar Chef-WorkStation (0.2.43-1) ... Menyediakan Chef-Workstation (0.2.43-1) ... Untuk menjalankan aplikasi Workstation Chef Eksperimen, gunakan pengurus pakej platform anda untuk memasang kebergantungan ini: libgconf-2.Jadi.4 => Tidak dijumpai Anda kemudian boleh melancarkan aplikasi dengan menjalankan 'Chef-Workstation-App'. Aplikasi ini kemudiannya akan tersedia di dulang sistem. Terima kasih kerana memasang stesen kerja chef! Anda boleh menemui beberapa petua untuk memulakan di https: // chef.sh/ 

Sekarang kita perlu membuat repositori chef. Direktori Chef-Repo akan menyimpan buku masakan chef anda dan fail lain yang berkaitan.

# Chef Menjana Repo Chef-Repo 

Buat a .Subdirektori Chef. The .subdirektori chef akan menyimpan fail konfigurasi pisau dan .fail PEM yang digunakan untuk pengesahan pasangan kunci RSA dengan pelayan chef. Pindah ke direktori Chef-Repo:

root@ubuntubox2: ~# mkdir ~/chef-repo/.Chef Root@Ubuntubox2: ~# CD Chef-Repo Root@Ubuntubox2: ~/Chef-Repo# 


Pengesahan antara pelayan chef dan stesen kerja dan/atau nod disiapkan dengan penyulitan kunci awam. Ini memastikan bahawa pelayan chef hanya berkomunikasi dengan mesin yang dipercayai. Dalam bahagian ini, kunci peribadi RSA, yang dihasilkan semasa menubuhkan pelayan chef, akan disalin ke stesen kerja untuk membolehkan berkomunikasi antara pelayan chef dan stesen kerja.

Kami akan menjana pasangan kunci RSA di pelayan stesen kerja. Pasangan utama ini akan digunakan untuk mendapatkan akses ke pelayan chef dan kemudian memindahkannya .fail PEM:

root@ubuntubox2: ~# ssh -keygen -b 4096 Menjana pasangan kunci RSA awam/swasta. Masukkan fail di mana untuk menyimpan kunci (/root/.ssh/id_rsa): direktori '/root/.ssh '. Masukkan frasa laluan (kosong tanpa frasa laluan): Masukkan frasa laluan yang sama sekali lagi: pengenalan anda telah disimpan di /root /.SSH/ID_RSA. Kunci awam anda telah diselamatkan /root /.SSH/ID_RSA.pub. Cap jari utama ialah: SHA256: sr+nloq6vsc7rx4zmminp3skdk4fyejh1iloknm1ymg [email protected] imej rawak kunci adalah: + --- [RSA 4096] ---- + | ... o. | |.E+ oo ... | | * o.O ... | | + o ... o + | | ... oos = . | | +o = oo+ . | | Oo+oo. | | ooo.+. | | o = b =*. | + ---- [SHA256] -----+ root@ubuntuBox2: ~# 

Muat naik kunci awam nod stesen kerja ke nod pelayan chef.

root@ubuntubox2: ~# ssh-copy-id [email protected]/usr/bin/ssh-copy-id: info: sumber kunci (s) yang akan dipasang: "/root/.SSH/ID_RSA.pub "/usr/bin/ssh-copy-id: info: cuba log masuk dengan kunci baru, untuk menyaring apa-apa yang sudah dipasang/usr/bin/ssh-copy-id: info: 1 kunci (s) tetap dipasang - jika anda digesa sekarang adalah memasang root kekunci [email protected] Laluan Com: Bilangan Kunci (s) Ditambah: 1 Sekarang cuba masuk ke dalam mesin, dengan: "ssh '[email protected] '"dan periksa untuk memastikan bahawa hanya kunci yang anda mahukan ditambah. root@ubuntubox2: ~# 

Salin .fail PEM dari pelayan chef anda ke stesen kerja anda menggunakan arahan SCP.

root@ubuntuBox2: ~# scp [email protected]: ~/.Chef/*.pem ~/chef-repo/.Chef/ Chefadmin.PEM 100% 1674 27.9kb/s 00:00 chef-on-ubuntu.PEM 100% 1674 496.8kb/s 00:00 

Sahkan bahawa fail telah disalin dengan jayanya dengan menyenaraikan kandungan .Direktori Chef. The .Fail PEM mesti disenaraikan.

root@ubuntubox2: ~# ls ~/chef-repo/.Chef Chefadmin.PEM CHEF-ON-UBUNTU.PEM 


Menjana buku masakan chef baru:

Root@Ubuntubox2: ~# Chef Menjana Buku Masakan Chef-First-Cookbook Hyphens tidak digalakkan dalam nama buku masakan kerana mereka boleh menyebabkan masalah dengan sumber tersuai. Lihat https: // docs.Chef.IO/CTL_CHEF.HTML#Chef-Generate-Cookbook untuk maklumat lanjut. Menjana buku masakan Chef -First -Cookbook - Memastikan kandungan fail buku masakan yang betul - Memastikan Konfigurasi Penghantaran - Memastikan Kandungan Bentuk Bina Penghantaran Betul. Taip 'CD Chef-First-Cookbook' untuk memasukkannya. Terdapat beberapa arahan yang boleh anda jalankan untuk memulakan pembangunan dan menguji buku masakan anda secara tempatan. Taipkan 'Penghantaran Tempatan -Help' untuk melihat senarai penuh. Mengapa tidak bermula dengan menulis ujian? Ujian untuk resipi lalai disimpan di: ujian/integrasi/lalai/default_test.RB Sekiranya anda lebih suka menyelam, resipi lalai boleh didapati di: resipi/lalai.rb 

Menjana chef-repo dan bergerak ke dalam direktori yang baru dibuat:

# Chef Menjana App Chef-Repo # CD Chef-Repo 

Konfigurasikan pisau dan bootstrapping nod klien

Buat fail konfigurasi pisau dengan menavigasi ke ~/chef-repo/.Direktori Chef dan membuat fail bernama Config.RB menggunakan editor teks pilihan anda.

Salin konfigurasi berikut ke dalam konfigurasi.Fail RB:

 current_dir = fail.dirname (__ file__) log_level: info log_location stdout node_name 'node_name' client_key "pengguna.PEM "validation_client_name 'org_name-validator' validation_key"-validator.pem "chef_server_url 'https: // ubuntubox1.com/organisasi/org_name 'cache_type' asasfile 'cache_options (: path => "#env [' home ']/.chef/checksums ") cookbook_path ["#current_dir/.../cookbooks "] 
Salinan

Nilai untuk node_name mestilah nama pengguna yang dibuat di pelayan chef.
Tukar pengguna.PEM di bawah klien_key untuk mencerminkan .Fail PEM untuk Pengguna Chef.
Validation_client_name mestilah org_name organisasi diikuti oleh -validator.
Organisasi-validator.PEM di laluan pengesahan_key harus ditetapkan ke org_name diikuti oleh -validator.PEM.
Akhirnya chef_server_url harus menjadi domain pelayan chef dengan /organisasi /org_name dilampirkan. Pastikan untuk menggantikan org_name dengan nama organisasi.

Pindah ke direktori Chef-Repo dan salin sijil SSL yang diperlukan dari pelayan:

root@ubuntubox2: ~/chef-repo/.Chef# cd ... root@ubuntubox2: ~/chef-repo# pisau ssl ambil amaran: sijil dari ubuntubox1.com akan diambil dan diletakkan di direktori amanah_cert anda (/root/chef-repo/.Chef/Trusted_certs). Pisau tidak mempunyai cara untuk mengesahkan ini adalah sijil yang betul. Anda harus mengesahkan kesahihan sijil ini setelah memuat turun. Menambah sijil untuk Ubuntubox1_com dalam/root/chef-repo/.Chef/Trusted_certs/Ubuntubox1_com.Crt 


Sahkan konfigurasi itu.RB disediakan dengan betul dengan menjalankan senarai pelanggan. Perintah ini harus mengeluarkan nama pengesahan.

root@ubuntuBox2: ~/chef-repo# senarai klien pisau chef-on-ubuntu-validator 

Bootstrapping nod memasang klien chef pada nod dan mengesahkan nod. Ini membolehkan nod membaca dari pelayan chef dan tarik ke bawah dan gunakan kemas kini konfigurasi yang diperlukan oleh koki chef.
Dari stesen kerja, navigasi ke ~/chef-repo/.Direktori Chef:

# cd ~/chef-repo/.Chef 

Bootstrap nod klien sama ada menggunakan pengguna root nod klien, atau pengguna dengan keistimewaan yang tinggi:

root@ubuntubox2: ~/chef-repo/.Chef# pisau bootstrap ubuntubox3.com -x root -p *******-node-name chef-client-node creating client baru untuk chef-klien-node mencipta nod baru untuk chef-klien-nod yang menyambung ke Ubuntubox3.com Ubuntubox3.com -----> Memasang Chef Omnibus (-V 14) Ubuntubox3.com memuat turun https: // omnitruck-direct.Chef.IO/Chef/Pasang.SH UBUNTUBOX3.com ke fail /tmp /pasang.sh.2019/Pasang.SH UBUNTUBOX3.com mencuba wget ... ubuntubox3.com Ubuntu 18.04 x86_64 Ubuntubox3.com mendapatkan maklumat untuk chef stabil 14 untuk ubuntu ... ubuntubox3.com memuat turun https: // omnitruck-direct.Chef.io/stabil/chef/metadata?V = 14 & P = Ubuntu & PV = 18.04 & m = x86_64 UbuntuBox3.com ke fail /tmp /pasang.sh.2023/metadata.txt ubuntubox3.com mencuba wget ... ubuntubox3.com sha1 ed9b1fcdaf947d9a3d60e6d1963088183a082bcff ubuntubox3.com SHA256 9DDCD5CEEF19C95ECC1F34BEF080C23D9CB42AE8EBC69FD41DCF1C768A6A708F UBUNTUBOX3.com url https: // pakej.Chef.io/fail/stabil/chef/14.13.11/Ubuntu/18.04/chef_14.13.11-1_amd64.Deb Ubuntubox3.com versi 14.13.11 Ubuntubox3.com fail metadata yang dimuat turun kelihatan sah ... ubuntubox3.com memuat turun https: // pakej.Chef.io/fail/stabil/chef/14.13.11/Ubuntu/18.04/chef_14.13.11-1_amd64.Deb Ubuntubox3.com ke fail /tmp /pasang.sh.2023/chef_14.13.11-1_amd64.Deb Ubuntubox3.com mencuba wget ... ubuntubox3.com membandingkan checksum dengan sha256sum ... ubuntubox3.com memasang chef 14 ubuntuBox3.com memasang dengan dpkg ... ubuntubox3.com memilih chef pakej yang tidak dipilih sebelum ini. (Pangkalan Data Membaca ... 117468 Fail dan Direktori yang Dipasang.) Ubuntubox3.com bersiap untuk membongkar ... /chef_14.13.11-1_amd64.Deb ... Ubuntubox3.com membongkar chef (14.13.11-1) ... ubuntubox3.com menubuhkan chef (14.13.11-1) ... ubuntubox3.com terima kasih kerana memasang klien infra chef! Untuk membantu memulakan lawatan https: // belajar.Chef.io ubuntubox3.com Memulakan Pelanggan Chef Pertama ... Ubuntubox3.com memulakan klien chef, versi 14.13.11 Ubuntubox3.com menyelesaikan buku masakan untuk senarai run: [] ubuntubox3.com menyegerakkan buku masakan: ubuntubox3.com memasang permata buku masakan: ubuntubox3.com menyusun buku masakan ... ubuntubox3.com [2019-06-03T14: 01: 44+04: 00] WARN: Node chef-client-node mempunyai senarai run kosong. UbuntuBox3.com menumpuk 0 sumber ubuntuBox3.com Ubuntubox3.com pengendali berjalan: ubuntubox3.com pengendali berjalan lengkapkan ubuntubox3.COM Chef Client selesai, 0/0 Resources Dikemaskini dalam 05 saat mengesahkan bahawa nod telah bootstrapped dengan menyenaraikan nod klien: root@ubuntuBox2: ~/chef-repo/.Chef# 

Sahkan bahawa nod telah berjaya bootstrapped dengan menyenaraikan nod:

root@ubuntubox2: ~/chef-repo/.Chef# Knife Node List Chef-Client-Node Root@UbuntuBox2: ~/Chef-Repo/.Chef# Knife Node Show Chef-Client-Node Node Nama: Chef-Client-Node Environment: _Default FQDN: UbuntuBox3.com ip: 192.168.1.107 Run Senarai: Peranan: Resipi: Platform: Ubuntu 18.04 Tag: 

Kesimpulan

Dalam artikel terperinci ini, kami belajar tentang alat Pengurusan Konfigurasi Chef dengan pemahaman asas dan gambaran keseluruhan komponennya dengan tetapan pemasangan dan konfigurasi. Anda boleh mengetahui lebih lanjut mengenai Chef dengan melawat laman web Chef i.e. https: // www.Chef.io/

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Menguasai Gelung Skrip Bash
  • Gelung bersarang dalam skrip bash
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Cara Menyiapkan Pelayan OpenVPN di Ubuntu 20.04
  • Perkara yang perlu dipasang di Ubuntu 22.04
  • Berapa kerap anda perlu reboot pelayan Linux anda?
  • Ubuntu 20.04 Panduan