Cara Menginstal Server Chef, Workstation dan Klien Chef di Ubuntu 18.04

Cara Menginstal Server Chef, Workstation dan Klien Chef di Ubuntu 18.04

Chef adalah alat manajemen konfigurasi berbasis ruby ​​yang digunakan untuk mendefinisikan infrastruktur sebagai kode. Ini memungkinkan pengguna untuk mengotomatisasi manajemen banyak node dan mempertahankan konsistensi di seluruh node tersebut. Resep Deklarasikan Keadaan yang diinginkan untuk Node Terkelola dan dibuat di Workstation Pengguna Menggunakan Paket Workstation Chef. Resep Anda didistribusikan di seluruh node melalui server koki. Klien koki, yang diinstal pada setiap node, bertugas menerapkan resep ke node yang sesuai. Panduan ini akan menunjukkan kepada Anda cara menginstal dan mengonfigurasi server koki dan workstation chef. Kami juga akan bootstrap node untuk dikelola dengan koki.

Dalam tutorial ini Anda akan belajar:

  • Instal dan konfigurasikan server koki
  • Buat Pengguna dan Organisasi Chef
  • Instal dan konfigurasikan workstation chef
  • Konfigurasikan pisau dan bootstrap node klien

Arsitektur Chef.

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Ubuntu Linux 18.04
Perangkat lunak Core Server Chef, Workstation Chef, Klien Chef, Kit Pengembangan Chef
Lainnya Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo memerintah.
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Instal dan konfigurasikan server koki

Server koki adalah pusat interaksi antara semua workstation dan node di bawah manajemen koki. Perubahan yang dilakukan pada kode konfigurasi pada workstation didorong ke server koki, dan kemudian ditarik oleh koki koki node untuk menerapkan konfigurasi.

Unduh server koki terbaru melalui menjalankan perintah di bawah ini:

# wget https: // paket.koki.IO/File/Stable/Chef-Server/12.18.14/ubuntu/18.04/chef-server-core_12.18.14-1_amd64.Deb 


Sekarang instal paket server dengan perintah berikut:

# dpkg -i chef-server-core_*.Deb 

Server koki menyertakan utilitas baris perintah yang disebut Chef-Server-CTL. Jalankan Chef-Server-CTL untuk memulai Layanan Server Chef.

# CHEF-Server-CTL Configure 

Setelah konfigurasi server koki yang berhasil Anda akan melihat pesan di bawah ini dan periksa status server koki juga.

Klien Chef selesai, sumber daya 493/1100 diperbarui dalam 12 menit 02 detik server koki dikonfigurasi ulang! 
root@ubuntubox1: ~# chef-server-ctl Status Run: Bookshelf: (PID 1435) 6644S; Jalankan: Log: (PID 1440) 6644S Lari: nginx: (PID 1235) 6653S; Jalankan: Log: (PID 1744) 6631S Run: OC_BIFROST: (PID 1196) 6657S; Jalankan: Log: (PID 1203) 6657S Run: OC_ID: (PID 1220) 6655S; Jalankan: Log: (PID 1227) 6655S Lari: opscode-erchef: (PID 4376) 6432S; Jalankan: Log: (PID 1508) 6644S Lari: opscode-expander: (PID 1335) 6648S; Jalankan: Log: (PID 1431) 6646S Lari: Opscode-Solr4: (PID 1244) 6650S; Jalankan: Log: (PID 1285) 6649S Lari: PostgreSQL: (PID 1176) 6659S; Jalankan: Log: (PID 1180) 6659S Lari: Rabbitmq: (PID 4188) 6443S; Jalankan: Log: (PID 1748) 6631S Run: Redis_LB: (PID 27397) 6931S; Jalankan: Log: (PID 1735) 6632S root@ubuntubox1: ~# 

Buat Pengguna dan Organisasi Chef

Untuk menautkan workstation dan node ke server koki, membuat administrator dan organisasi dengan kunci pribadi RSA terkait.
Dari direktori home, buat a .Direktori Chef untuk menyimpan kunci.

# mkdir .koki 

Gunakan Chef-Server-CTL untuk membuat pengguna. Dalam contoh ini, ubah yang berikut untuk mencocokkan kebutuhan Anda: user_name, first_name, last_name, email, dan kata sandi. Sesuaikan user_name.PEM, dan tinggalkan .Ekstensi PEM.

Chef-Server-CTL Pengguna-membuat user_name first_name last_name email 'kata sandi'-filename ~/.Chef/user_name.PEM
root@ubuntubox1: ~# chef-server-ctl pengguna-membuat administrator chef chef chefadmin @@ ubuntubox1.com '*******' --Filename ~/.Chef/Chefadmin.PEM 

Untuk melihat daftar semua pengguna di server koki Anda mengeluarkan perintah berikut:

root@ubuntubox1: ~# chef-server-ctl daftar pengguna daftar pivotal 

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

Chef-server-ctl org-membuat org_name "org_full_name" --association_user user_name ~ filename ~/.Chef/org_name.PEM
root@ubuntubox1: ~# chef-server-ctl org-membuat infrastruktur chef chef-on-ubuntu "di ubuntu 18.04 "--association_user chefadmin - -filename ~/.Chef/Chef-on-Ubuntu.PEM 


Untuk melihat daftar semua organisasi di server koki Anda, gunakan perintah berikut:

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

Dengan server koki diinstal dan tombol RSA yang dihasilkan, kami akan mulai mengkonfigurasi workstation chef. Workstation adalah tempat semua konfigurasi utama akan dibuat untuk node Anda.

Instal dan konfigurasikan workstation chef

Workstation Chef adalah tempat Anda membuat dan mengkonfigurasi resep, buku masak, atribut, dan perubahan lain yang diperlukan untuk mengelola node Anda. Meskipun ini bisa menjadi mesin lokal yang menjalankan OS apa pun, ada beberapa manfaat untuk menjaga server jarak jauh sebagai workstation Anda sehingga Anda dapat mengaksesnya dari mana saja.

Di bagian ini, Anda akan mengunduh dan menginstal Paket Workstation Chef, yang menyediakan semua alat juga disertakan dengan Chefdk, kit pengembangan Chef.

Unduh Workstation Chef terbaru:

root@ubuntubox2: ~# wget https: // paket.koki.IO/file/stabil/chef-workstation/0.2.43/ubuntu/18.04/Chef-WorkStation_0.2.43-1_amd64.Deb --2019-06-03 13: 35: 51-- https: // paket.koki.IO/file/stabil/chef-workstation/0.2.43/ubuntu/18.04/Chef-WorkStation_0.2.43-1_amd64.Paket penyelesaian Deb.koki.IO (paket.koki.io)… 151.101.142.110 Menghubungkan ke Paket.koki.IO (paket.koki.io) | 151.101.142.110 |: 443… terhubung. Permintaan http terkirim, menunggu respons ... 200 OK Panjang: 129713682 (124m) [Aplikasi/X-Paket] Simpan untuk: 'Chef-WorkStation_0.2.43-1_amd64.Deb 'Chef-WorkStation_0.2.43-1_amd64.Deb 100%[================================================ ========================================>] 123.70m 1.51MB/s di 80-an 2019-06-03 13:37:17 (1.55 mb/s) - 'Chef -WorkStation_0.2.43-1_amd64.Deb 'Saved [129713682/129713682] 

Instal Chef Workstation:

root@ubuntubox2: ~# dpkg -i chef -workstation_*.Deb Memilih paket koki-kerja yang sebelumnya tidak dipilih. (Membaca Database… 117468 File dan Direktori yang Saat Ini Diinstal.) Mempersiapkan untuk Membongkar Chef-WorkStation_0.2.43-1_amd64.Deb… Membongkar Koki Koki (0.2.43-1)… Menyiapkan koki-kerja (0.2.43-1)… Untuk menjalankan aplikasi Workstation Chef Experimental, gunakan manajer paket platform Anda untuk menginstal dependensi ini: libgconf-2.Jadi.4 => tidak ditemukan Anda kemudian dapat meluncurkan aplikasi dengan menjalankan 'Chef-WorkStation-App'. Aplikasi ini kemudian akan tersedia di baki sistem. Terima kasih telah menginstal Chef Workstation! Anda dapat menemukan beberapa tips untuk memulai di https: // chef.SH/ 

Sekarang kita perlu membuat repositori koki. Direktori Chef-Repo akan menyimpan buku masak Chef Anda dan file terkait lainnya.

# koki menghasilkan repo chef-repo 

Membuat .Subdirektori Chef. Itu .Chef Subdirectory akan menyimpan file konfigurasi pisau dan .File PEM yang digunakan untuk otentikasi pasangan kunci RSA dengan server koki. Pindah ke direktori Chef-Repo:

root@ubuntubox2: ~# mkdir ~/chef-repo/.Chef root@ubuntubox2: ~# cd chef-repo root@ubuntubox2: ~/chef-repo# 


Otentikasi antara server koki dan workstation dan/atau node diselesaikan dengan enkripsi kunci publik. Ini memastikan bahwa server koki hanya berkomunikasi dengan mesin tepercaya. Di bagian ini, kunci pribadi RSA, yang dihasilkan saat menyiapkan server koki, akan disalin ke workstation untuk memungkinkan berkomunikasi antara server koki dan workstation.

Kami akan menghasilkan pasangan kunci RSA di server workstation. Tasi-kunci ini akan digunakan untuk mendapatkan akses ke server koki dan kemudian mentransfernya .File PEM:

root@ubuntubox2: ~# ssh -keygen -b 4096 Menghasilkan pasangan kunci RSA publik/pribadi. Masukkan file untuk menyimpan kunci (/root/.SSH/ID_RSA): Direktori dibuat '/root/.ssh '. Masukkan frasa sandi (kosong tanpa frasa sandi): Masukkan frasa sandi yang sama lagi: Identifikasi Anda telah disimpan di /root /.ssh/id_rsa. Kunci publik Anda telah disimpan di /root /.ssh/id_rsa.pub. Sidik jari kuncinya adalah: SHA256: SR+NLOQ6VSC7RX4ZMMINP3SKDK4FYEJH1ILOKNM1YMG [email protected] gambar acak kunci adalah: + --- [RSA 4096] ---- + |… o. | |.E+ OO… | | * o.O… | | + o… o + | | ... OOS = . | | +o = oo+ . | | OO+OO. | | ooo.+. | | o = b =*. | + ---- [sha256] -----+ root@ubuntubox2: ~# 

Unggah kunci publik node workstation ke node server chef.

root@ubuntubox2: ~# ssh-copy-id [email protected]/usr/bin/ssh-copy-id: info: sumber kunci yang akan diinstal: "/root/.ssh/id_rsa.pub "/usr/bin/ssh-copy-id: Info: mencoba masuk dengan kunci baru, untuk menyaring apa saja yang sudah diinstal/usr/bin/ssh-copy-id: info: 1 tombol (s) tetap akan diinstal - jika Anda diminta sekarang untuk menginstal tombol baru [email protected] sandi com: Jumlah kunci ditambahkan: 1 Sekarang coba masuk ke mesin, dengan: "ssh '[email protected] '"dan periksa untuk memastikan bahwa hanya kunci yang Anda inginkan ditambahkan. root@ubuntubox2: ~# 

Salin .File PEM dari server Chef Anda ke workstation Anda menggunakan perintah SCP.

root@ubuntubox2: ~# scp [email protected]: ~//.koki/*.PEM ~/Chef-Repo/.Chef/ Chefadmin.PEM 100% 1674 27.9kb/s 00:00 Chef-on-Ubuntu.PEM 100% 1674 496.8kb/s 00:00 

Konfirmasi bahwa file telah berhasil disalin dengan mendaftarkan konten .Direktori Chef. Itu .File PEM harus terdaftar.

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


Hasilkan buku masak koki baru:

root@ubuntubox2: ~# koki menghasilkan buku masak koki-first-cookbook tanda hubung berkecil hati dalam nama buku masak karena dapat menyebabkan masalah dengan sumber daya khusus. Lihat https: // docs.koki.IO/CTL_CHEF.html#chef-generate-cookbook untuk informasi lebih lanjut. Menghasilkan buku masak koki -pertama -cookbook - memastikan konten file buku masak yang benar - memastikan konfigurasi pengiriman - memastikan pengiriman buku masak pembuatan buku masak yang benar sudah siap. Type 'CD Chef-First-Cookbook' untuk memasukkannya. Ada beberapa perintah yang dapat Anda jalankan untuk memulai mengembangkan dan menguji buku resep Anda secara lokal. Ketik 'Delivery Local -Help' untuk melihat daftar lengkap. Mengapa tidak memulai dengan menulis tes? Tes untuk resep default disimpan di: tes/integrasi/default/default_test.RB Jika Anda lebih suka menyelam, resep default dapat ditemukan di: resep/default.RB 

Menghasilkan koki-repo dan pindah ke direktori yang baru dibuat:

# Chef menghasilkan aplikasi koki-repo # CD Chef-Repo 

Konfigurasikan pisau dan bootstrap node klien

Buat file konfigurasi pisau dengan menavigasi ke ~/chef-repo/.direktori koki dan membuat file bernama config.RB Menggunakan Editor Teks pilihan Anda.

Salin konfigurasi berikut ke konfigurasi.File RB:

 arus_dir = file.dirname (__ file__) log_level: info log_location stdout node_name 'node_name' client_key "pengguna.PEM "validation_client_name 'org_name-validator' validation_key" Organisasi-validator.PEM "CHEF_SERVER_URL 'https: // ubuntubox1.com/organisasi/org_name 'cache_type' basicfile 'cache_options (: path => "#env [' home ']/.chef/checksums ") cookbook_path ["#current_dir/.../cookbooks "] 
Menyalin

Nilai untuk node_name harus menjadi nama pengguna yang dibuat di server koki.
Ganti pengguna.PEM di bawah Client_Key untuk mencerminkan .File PEM untuk pengguna koki.
Validation_client_name harus menjadi org_name organisasi diikuti oleh -validator.
Organisasi-validator.PEM di jalur validation_key harus diatur ke org_name diikuti oleh -validator.PEM.
Akhirnya chef_server_url harus menjadi domain server koki dengan /organisasi /org_name ditambahkan. Pastikan untuk mengganti org_name dengan nama organisasi.

Pindah ke direktori Chef-Repo dan salin sertifikat SSL yang diperlukan dari server:

root@ubuntubox2: ~/chef-repo/.Chef# CD… root@ubuntubox2: ~/chef-repo# pisau ssl fetch warning: sertifikat dari ubuntubox1.com akan diambil dan ditempatkan di direktori terpercaya_cert Anda (/root/chef-repo/.koki/trusted_certs). Pisau tidak memiliki sarana untuk memverifikasi ini adalah sertifikat yang benar. Anda harus memverifikasi keaslian sertifikat ini setelah mengunduh. Menambahkan sertifikat untuk ubuntubox1_com di/root/chef-repo/.chef/trusted_certs/ubuntubox1_com.crt 


Konfirmasi konfigurasi itu.RB diatur dengan benar dengan menjalankan daftar klien. Perintah ini harus mengeluarkan nama validator.

root@ubuntubox2: ~/chef-repo# Daftar klien pisau chef-on-ubuntu-validator 

Bootstraps node menginstal klien koki pada node dan memvalidasi node. Ini memungkinkan node untuk membaca dari server koki dan menarik ke bawah dan menerapkan pembaruan konfigurasi yang diperlukan yang terdeteksi oleh koki-klien.
Dari workstation, navigasikan ke ~/chef-repo/.Direktori Chef:

# CD ~/Chef-Repo/.koki 

Bootstrap Node klien baik menggunakan pengguna root node klien, atau pengguna dengan hak istimewa yang ditinggikan:

root@ubuntubox2: ~/chef-repo/.Chef# Knife Bootstrap Ubuntubox3.com -x root -p *******--node-name Chef-client-node Membuat klien baru untuk koki-klien-node Membuat simpul baru untuk koki-klien-simpul yang menghubungkan ke ubuntubox3.com ubuntubox3.com -----> Menginstal Chef Omnibus (-V 14) Ubuntubox3.com mengunduh https: // omnitruck-direct.koki.io/chef/install.sh ubuntubox3.com ke file /tmp /install.SH.2019/instal.sh ubuntubox3.com mencoba wget… ubuntubox3.com ubuntu 18.04 x86_64 ubuntubox3.com Mendapatkan informasi untuk Chef Stable 14 untuk Ubuntu… Ubuntubox3.com mengunduh https: // omnitruck-direct.koki.io/stabil/chef/metadata?v = 14 & p = ubuntu & pv = 18.04 & m = x86_64 ubuntubox3.com ke file /tmp /install.SH.2023/metadata.txt ubuntubox3.com mencoba wget… ubuntubox3.com sha1 ed9b1fcdaf947d9a3d60e6d196308183a082bcff ubuntubox3.com sha256 9ddcd5ceef19c95ecc1f34bef080c23d9cb42ae8ebc69fd41dcf1c768a6a708f ubuntubox3.com url https: // paket.koki.IO/File/Stable/Chef/14.13.11/ubuntu/18.04/chef_14.13.11-1_amd64.Deb Ubuntubox3.COM Versi 14.13.11 ubuntubox3.File metadata yang diunduh com terlihat valid… ubuntubox3.com mengunduh https: // paket.koki.IO/File/Stable/Chef/14.13.11/ubuntu/18.04/chef_14.13.11-1_amd64.Deb Ubuntubox3.com ke file /tmp /install.SH.2023/chef_14.13.11-1_amd64.Deb Ubuntubox3.com mencoba wget… ubuntubox3.com membandingkan checksum dengan sha256sum… ubuntubox3.com menginstal koki 14 ubuntubox3.com menginstal dengan dpkg… ubuntubox3.com memilih koki paket yang sebelumnya tidak dipilih. (Membaca Database… 117468 File dan Direktori yang Saat Ini Diinstal.) ubuntubox3.com bersiap untuk membongkar… /chef_14.13.11-1_amd64.Deb… Ubuntubox3.com membongkar koki (14.13.11-1)… ubuntubox3.com mengatur koki (14.13.11-1)… ubuntubox3.com terima kasih telah menginstal klien koki infra! Untuk bantuan memulai, kunjungi https: // pelajari.koki.io ubuntubox3.com Memulai menjalankan klien koki pertama… ubuntubox3.com Memulai Klien Chef, Versi 14.13.11 ubuntubox3.Com Resolving Cookbooks for Run List: [] Ubuntubox3.Com Synchronizing Cookbooks: Ubuntubox3.com Menginstal Permata Buku Masakan: Ubuntubox3.com menyusun buku masak… ubuntubox3.com [2019-06-03T14: 01: 44+04: 00] Peringatan: Node Chef-Client-Node memiliki daftar lari kosong. ubuntubox3.com konvergen 0 sumber daya ubuntubox3.com ubuntubox3.com Running Handlers: ubuntubox3.com running handlers lengkap ubuntubox3.Com Chef Client selesai, 0/0 sumber daya diperbarui dalam 05 detik Konfirmasi bahwa node telah bootstrap dengan mendaftarkan node klien: root@ubuntubox2: ~/chef-repo/.koki# 

Konfirmasikan bahwa node telah berhasil bootstrap dengan mendaftar node:

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 Lingkungan: _Default fqdn: ubuntubox3.com ip: 192.168.1.107 Daftar Jalankan: Peran: Resep: Platform: Ubuntu 18.04 Tag: 

Kesimpulan

Dalam artikel terperinci ini kami belajar tentang alat manajemen konfigurasi koki dengan pemahaman dasar dan gambaran umum komponennya dengan pengaturan instalasi dan konfigurasi. Anda dapat mempelajari lebih lanjut tentang Chef dengan mengunjungi situs web Chef i.e. https: // www.koki.io/

Tutorial Linux Terkait:

  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Menguasai loop skrip bash
  • Loop bersarang dalam skrip bash
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Cara Mengatur Server OpenVPN di Ubuntu 20.04
  • Hal -hal yang harus diinstal pada Ubuntu 22.04
  • Seberapa sering Anda harus me -reboot server linux Anda?
  • Ubuntu 20.04 Panduan