GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara menginstal Chef Server, Workstation dan Chef Client di Ubuntu 18.04

Chef adalah alat manajemen konfigurasi berbasis Ruby yang digunakan untuk mendefinisikan infrastruktur sebagai kode. Hal ini memungkinkan pengguna untuk mengotomatiskan pengelolaan banyak node dan menjaga konsistensi di seluruh node tersebut. Resep menyatakan status yang diinginkan untuk node terkelola dan dibuat di workstation pengguna menggunakan paket Chef Workstation. Resep Anda didistribusikan di seluruh node melalui server Chef. Klien Chef, yang diinstal pada setiap node, bertanggung jawab untuk menerapkan resep ke node yang sesuai. Panduan ini akan menunjukkan kepada Anda cara menginstal dan mengkonfigurasi Server Chef dan Stasiun Kerja Chef. Kami juga akan mem-bootstrap sebuah node untuk dikelola dengan Chef.

Dalam tutorial ini Anda akan mempelajari:

  • Instal dan Konfigurasi Server Chef
  • Buat Pengguna dan Organisasi Chef
  • Memasang dan Mengonfigurasi Stasiun Kerja Chef
  • Konfigurasi Knife dan Bootstrap pada Node Klien

Arsitektur Koki.

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 Chef Server Core, Chef Workstation, Chef Client, Chef Development Kit
Lainnya Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo perintah.
Konvensi # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa

Instal dan Konfigurasi Server Chef

Server Chef adalah pusat interaksi antara semua workstation dan node di bawah manajemen Chef. Perubahan yang dibuat pada kode konfigurasi di workstation didorong ke server Chef, lalu ditarik oleh klien chef node untuk menerapkan konfigurasi.

Unduh server Chef terbaru melalui menjalankan perintah di bawah ini:

# wget https://packages.chef.io/files/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 Chef menyertakan utilitas baris perintah yang disebut chef-server-ctl. Jalankan chef-server-ctl untuk memulai layanan server Chef.

# chef-server-ctl mengkonfigurasi ulang

Setelah konfigurasi server chef berhasil, Anda akan melihat pesan di bawah ini dan juga memeriksa status menjalankan server chef.

Chef Client selesai, 493/1100 sumber daya diperbarui dalam 12 menit 02 detikChef Server Dikonfigurasi Ulang!
root@ubuntubox1:~# chef-server-ctl statusrun:rak buku:(pid 1435) 6644s; jalankan:log:(pid 1440) 6644srun:nginx:(pid 1235) 6653s; jalankan:log:(pid 1744) 6631srun:oc_bifrost:(pid 1196) 6657s; jalankan:log:(pid 1203) 6657srun:oc_id:(pid 1220) 6655s; jalankan:log:(pid 1227) 6655srun:opscode-erchef:(pid 4376) 6432s; jalankan:log:(pid 1508) 6644srun:opscode-expander:(pid 1335) 6648s; jalankan:log:(pid 1431) 6646srun:opscode-solr4:(pid 1244) 6650s; jalankan:log:(pid 1285) 6649srun:postgresql:(pid 1176) 6659s; jalankan:log:(pid 1180) 6659srun:rabbitmq:(pid 4188) 6443s; jalankan:log:(pid 1748) 6631srun:redis_lb:(pid 27397) 6931s; jalankan:log:(pid 1735) 6632sroot@ubuntubox1:~#

Buat Pengguna dan Organisasi Chef

Untuk menautkan stasiun kerja dan node ke server Chef, buat administrator dan organisasi dengan kunci pribadi RSA terkait.
Dari direktori home, buat direktori .chef untuk menyimpan kunci.

# mkdir .chef

Gunakan chef-server-ctl untuk membuat pengguna. Dalam contoh ini, ubah yang berikut agar sesuai dengan kebutuhan Anda:USER_NAME, FIRST_NAME, LAST_NAME, EMAIL, dan PASSWORD. Sesuaikan USER_NAME.pem, dan biarkan ekstensi .pem.

chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL 'PASSWORD' --filename ~/.chef/USER_NAME.pem
root@ubuntubox1:~# chef-server-ctl user-create chefadmin Chef Administrator chefadmin@@ubuntubox1.com '*******' --filename ~/.chef/chefadmin.pem

Untuk melihat daftar semua pengguna di server Chef Anda, jalankan perintah berikut:

root@ubuntubox1:~# chef-server-ctl user-listchefadminpivotal

Buat organisasi dan tambahkan pengguna yang dibuat pada langkah sebelumnya. Ganti ORG_NAME dengan pengenal singkat 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 pengenal singkat organisasi diikuti dengan .pem.

chef-server-ctl org-create ORG_NAME "ORG_FULL_NAME" --association_user USER_NAME --nama file ~/.chef/ORG_NAME.pem
root@ubuntubox1:~# chef-server-ctl org-create chef-on-ubuntu "Infrastruktur Chef di Ubuntu 18.04" --association_user chefadmin --nama file ~/.chef/chef-on-ubuntu.pem 

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

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

Dengan server Chef terinstal dan kunci RSA dihasilkan, kami akan mulai mengonfigurasi workstation Chef. Workstation adalah tempat semua konfigurasi utama akan dibuat untuk node Anda.

Instal dan Konfigurasikan Stasiun Kerja Chef

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

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

Unduh Chef Workstation terbaru:

root@ubuntubox2:~# wget https://packages.chef.io/files/stable/chef-workstation/0.2.43/ubuntu/18.04/chef-workstation_0.2.43-1_amd64.deb--2019-06 -03 13:35:51-- https://packages.chef.io/files/stable/chef-workstation/0.2.43/ubuntu/18.04/chef-workstation_0.2.43-1_amd64.debMenyelesaikan paket.chef.io ( package.chef.io)... 151.101.142.110Menghubungkan ke package.chef.io (packages.chef.io)|151.101.142.110|:443... terhubung.Permintaan HTTP terkirim, menunggu tanggapan... 200 OKPanjang:129713682 (124M) [application/x-debian-package]Menyimpan ke:'chef-workstation_0.2.43-1_amd64.deb'chef-workstation_0.2.43-1_amd64.deb 100%[=====================================================================================>] 123,70 juta 1,51 MB/dtk dalam 80-an2019-06-03 13:37:17 (1,55 MB/dtk) - 'chef-workstation_0.2.43-1_amd64.deb' disimpan [129713682/129713682]

Instal Chef Workstation:

root@ubuntubox2:~# dpkg -i chef-workstation_*.debMemilih paket chef-workstation yang sebelumnya tidak dipilih.(Membaca database ... 117468 file dan direktori saat ini diinstal.)Bersiap untuk membongkar chef-workstation_0.2.43-1_amd64. deb ...Membongkar chef-workstation (0.2.43-1) ...Menyiapkan chef-workstation (0.2.43-1) ...Untuk menjalankan Aplikasi Chef Workstation eksperimental, gunakan pengelola paket platform Anda untuk menginstal dependensi ini:libgconf-2.so.4 => tidak ditemukanAnda 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 tentang memulai di https://chef.sh/

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

# chef menghasilkan repo chef-repo

Buat subdirektori .chef. Subdirektori .chef akan menyimpan file konfigurasi Knife dan file .pem yang digunakan untuk otentikasi pasangan kunci RSA dengan server Chef. Pindah ke direktori chef-repo:

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

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

Kami akan menghasilkan pasangan kunci RSA di server workstation. Pasangan kunci ini akan digunakan untuk mendapatkan akses ke server Chef dan kemudian mentransfer file .pem mereka:

root@ubuntubox2:~# ssh-keygen -b 4096Membuat pasangan kunci rsa publik/pribadi. Masukkan file untuk menyimpan kunci (/root/.ssh/id_rsa):Direktori yang dibuat '/root/.ssh'. Masukkan frasa sandi (kosongkan 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] randomart kuncinya adalah:+---[RSA 4096]----+|.. . Hai. ||.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 dipasang:"/root/.ssh/id_rsa .pub"/usr/bin/ssh-copy-id:INFO:mencoba masuk dengan kunci baru, untuk menyaring semua yang sudah diinstal/usr/bin/ssh-copy-id:INFO:1 kunci tetap harus diinstal -- jika Anda diminta sekarang, itu adalah menginstal kata sandi baru [email protected]:Jumlah kunci ditambahkan:1Sekarang coba masuk ke mesin, dengan:"ssh 'root@ ubuntubox1.com'"dan periksa untuk memastikan bahwa hanya kunci yang Anda inginkan yang ditambahkan.root@ubuntubox2:~#

Salin file .pem dari server Chef Anda ke workstation Anda menggunakan perintah scp.

root@ubuntubox2:~# scp [email protected]:~/.chef/*.pem ~/chef-repo/.chef/chefadmin.pem 100% 1674 27.9KB/s 00:00chef-on-ubuntu .pem 100% 1674 496.8KB/s 00:00

Konfirmasikan bahwa file telah berhasil disalin dengan mencantumkan konten direktori .chef. File .pem harus terdaftar.

root@ubuntubox2:~# ls ~/chef-repo/.chefchefadmin.pem chef-on-ubuntu.pem

Buat buku masak Chef baru:

root@ubuntubox2:~# chef generate buku masak chef-first-cookbookHyphens tidak disarankan dalam nama buku masak karena dapat menyebabkan masalah dengan sumber daya khusus. Lihat https://docs.chef.io/ctl_chef.html#chef-generate-cookbook untuk informasi lebih lanjut.Membuat buku masak chef-first-cookbook- Memastikan konten file buku masak yang benar- Memastikan konfigurasi pengiriman- Memastikan pengiriman yang benar membuat konten buku masak Buku masak Anda siap. Ketik `cd chef-first-cookbook` untuk memasukkannya. Ada beberapa perintah yang dapat Anda jalankan untuk mulai mengembangkan dan menguji buku masak Anda secara lokal. Ketik `delivery local --help` untuk melihat daftar lengkapnya. Mengapa tidak memulai dengan menulis a uji? Tes untuk resep default disimpan di:test/integration/default/default_test.rbJika Anda lebih suka langsung masuk, resep default dapat ditemukan di:recipes/default.rb

Buat chef-repo dan pindah ke direktori yang baru dibuat:

# chef buat aplikasi chef-repo# cd chef-repo

Konfigurasikan Knife dan Bootstrap pada Node Klien

Buat file konfigurasi pisau dengan menavigasi ke direktori ~/chef-repo/.chef dan membuat file bernama config.rb menggunakan editor teks pilihan Anda.

Salin konfigurasi berikut ke dalam file config.rb:


current_dir = File.dirname(__FILE__)
log_level                :info
log_location             STDOUT
node_name                'node_name'
client_key               "USER.pem"
validation_client_name   'ORG_NAME-validator'
validation_key           "ORGANIZATION-validator.pem"
chef_server_url          'https://ubuntubox1.com/organizations/ORG_NAME'
cache_type               'BasicFile'
cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )
cookbook_path            ["#{current_dir}/../cookbooks"]
 

Nilai untuk node_name harus berupa nama pengguna yang dibuat di server Chef.
Ubah USER.pem di bawah client_key untuk mencerminkan file .pem untuk pengguna chef.
Validasi_client_name harus ORG_NAME organisasi diikuti dengan - validator.
ORGANIZATION-validator.pem di jalur validation_key harus disetel ke ORG_NAME diikuti oleh -validator.pem.
Terakhir chef_server_url harus menjadi domain server Chef dengan /organizations/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# knife ssl fetchPERINGATAN:Sertifikat dari ubuntubox1.com akan diambil dan ditempatkan di direktori terpercaya_cert (/root/ chef-repo/.chef/trusted_certs).Knife tidak memiliki sarana untuk memverifikasi bahwa 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

Konfirmasikan bahwa config.rb diatur dengan benar dengan menjalankan daftar klien. Perintah ini akan menampilkan nama validator.

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

Bootstrapping sebuah node menginstal klien Chef pada node dan memvalidasi node. Hal ini memungkinkan node untuk membaca dari server Chef dan pull down serta menerapkan pembaruan konfigurasi yang diperlukan yang terdeteksi oleh chef-client.
Dari workstation, navigasikan ke direktori ~/chef-repo/.chef:

# cd ~/chef-repo/.chef

Bootstrap node klien baik menggunakan pengguna root node klien, atau pengguna dengan hak istimewa yang lebih tinggi:

root@ubuntubox2:~/chef-repo/.chef# knife bootstrap ubuntubox3.com -x root -P ******* --node-name chef-client-nodeMembuat klien baru untuk chef-client- nodeMembuat simpul baru untuk chef-client-nodeMenghubungkan ke ubuntubox3.comubuntubox3.com -----> Memasang Chef Omnibus (-v 14)ubuntubox3.com mengunduh https://omnitruck-direct.chef.io/chef/install.shubuntubox3 .com ke file /tmp/install.sh.2019/install.shubuntubox3.com mencoba wget...ubuntubox3.com ubuntu 18.04 x86_64ubuntubox3.com Mendapatkan informasi untuk chef stable 14 untuk ubuntu...ubuntubox3.com mengunduh https:// omnitruck-direct.chef.io/stable/chef/metadata?v=14&p=ubuntu&pv=18.04&m=x86_64ubuntubox3.com ke file /tmp/install.sh.2023/metadata.txtubuntubox3.com mencoba wget...ubuntubox3.com dsha1 ed9b1fcdaf947d9a3d60e6d196308183a082bcffubuntubox3.com sha256 9ddcd5ceef19c95ecc1f34bef080c23d9cb42ae8ebc69fd41dcf1c768a6a708fubuntubox3.com/url debubuntubox3.com versi 14.13.11ubuntubox3.com file metadata yang diunduh terlihat valid... ubuntubox3.com mengunduh https://packages.chef.io/files/stable/chef/14.13.11/ubuntu/18.04/chef_14.13.11-1_amd64 .debubuntubox3.com ke file /tmp/install.sh.2023/chef_14.13.11-1_amd64.debubuntubox3.com mencoba wget...ubuntubox3.com Membandingkan checksum dengan sha256sum...ubuntubox3.com Menginstal chef 14ubuntubox3.com menginstal dengan dpkg ...ubuntubox3.com Memilih chef paket yang sebelumnya tidak dipilih.(Membaca database ... 117468 file dan direktori saat ini terpasang.)ubuntubox3.com Bersiap untuk membongkar .../chef_14.13.11-1_amd64.deb ...ubuntubox3.com Membongkar chef (14.13.11-1) ...ubuntubox3.com Menyiapkan chef (14.13.11-1) ...ubuntubox3.com Terima kasih telah menginstal Chef Infra Client! Untuk bantuan memulai, kunjungi https://learn.chef.ioubuntubox3.com Memulai Chef Client pertama menjalankan...ubuntubox3.com Memulai Chef Client, versi 14.13.11ubuntubox3.com menyelesaikan buku masak untuk daftar yang dijalankan:[]ubuntubox3.com Menyinkronkan Buku Masak:ubuntubox3.com Memasang Permata Buku Masak:ubuntubox3.com Mengkompilasi Buku Masak...ubuntubox3.com [2019-06-03T14:01:44+04:00] PERINGATAN:Node chef-client-node memiliki daftar run kosong.ubuntubox3 .com Konvergen 0 resourcesubuntubox3.comubuntubox3.com Menjalankan handler:ubuntubox3.com Menjalankan handler completeubuntubox3.com Chef Client selesai, 0/0 resource diperbarui dalam 05 detikKonfirmasi bahwa node telah di-bootstrap dengan mendaftar node klien:root@ubuntubox2:~/ chef-repo/.chef# 

Konfirmasikan bahwa node telah berhasil di-bootstrap dengan membuat daftar node:

root@ubuntubox2:~/chef-repo/.chef# knife node listchef-client-noderoot@ubuntubox2:~/chef-repo/.chef# knife node show chef-client-nodeNode Nama:chef-client-nodeEnvironment :_defaultFQDN:ubuntubox3.comIP:192.168.1.107Jalankan Daftar:Peran:Resep:Platform:ubuntu 18.04Tag:

Kesimpulan

Dalam artikel terperinci ini, kami mempelajari tentang alat Manajemen Konfigurasi Chef dengan pemahaman dasar dan tinjauan umum komponennya dengan pengaturan instalasi dan konfigurasi. Anda dapat mempelajari lebih lanjut tentang Chef dengan mengunjungi situs web Chef yaitu https://www.chef.io/


Ubuntu
  1. Cara Menginstal Server dan Klien NTP di Ubuntu 18.04 LTS

  2. Instal UrBackup Server dan Klien di Ubuntu 20.04 - Bagaimana cara melakukannya?

  3. Instal server dan klien vnc di Ubuntu

  1. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 20.04

  2. Cara Menginstal dan Mengkonfigurasi Server DHCP di Ubuntu 20.04

  3. Cara Menginstal Klien dan Server NFS di Ubuntu 20.04

  1. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 20.04

  2. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 18.04

  3. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 18.04