GNU/Linux >> Belajar Linux >  >> Linux

Cara Menginstal dan Mengatur Workstation Chef di Linux

Chef adalah perangkat lunak otomatisasi infrastruktur TI, yang dapat digunakan untuk mengelola semua server dan peralatan jaringan di organisasi Anda .

Anda memerlukan workstation chef saat ingin berinteraksi dengan server chef, atau node fisik apa pun (server, peralatan jaringan, dll) di infrastruktur Anda.

Di stasiun kerja koki, menggunakan beberapa perintah terkait koki (misalnya, pisau), Anda dapat membuat buku masak, atau membuat resep yang akan dieksekusi pada node individu. Anda juga dapat mem-bootstarp node baru dari chef workstation.

Tutorial ini menjelaskan bagaimana Anda bisa menginstal dan mengonfigurasi workstation Chef di server Linux.

Unduh ChefDK

ChefDK adalah singkatan dari Chef Development Kit. ChefDK tersedia untuk hampir semua platform termasuk Distro Berbasis Debian, Ubuntu, Distro Berbasis RedHat seperti CentOS, Mac OS X, dan Windows.

Versi stabil ChefDK saat ini adalah 0.11.2, Untuk sistem berbasis RHEL, tersedia untuk versi 6 dan versi 7 (yaitu CentOS 6 dan CentOS 7). Versi RPM terpaket hanya tersedia untuk versi 64-bit.

Unduh, dari sini, atau gunakan URL langsung seperti yang ditunjukkan di bawah ini.

Untuk CentOS 7, gunakan yang berikut ini:

cd ~
wget https://packages.chef.io/stable/el/7/chefdk-0.11.2-1.el7.x86_64.rpm

Untuk CentOS 6, gunakan yang berikut ini:

cd ~
wget https://packages.chef.io/stable/el/6/chefdk-0.11.2-1.el6.x86_64.rpm

Instal ChefDK

Instal ChefDK menggunakan RPM yang kami unduh di atas.

# rpm -ivh chefdk-0.11.2-1.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:chefdk-0.11.2-1.el7              ################################# [100%]
Thank you for installing Chef Development Kit!

Ini akan menginstal ChefDK di bawah /opt/chefdk seperti yang ditunjukkan di bawah ini.

# ls -l /opt/chefdk/
drwxr-xr-x. 2 root root  4096 Mar  3 13:50 bin
drwxr-xr-x. 7 root root    62 Mar  3 13:50 embedded
-rw-r--r--. 1 root root 13249 Feb 22 14:26 version-manifest.json
-rw-r--r--. 1 root root  8233 Feb 22 14:26 version-manifest.txt

Verifikasi Instalasi ChefDK

Jalankan verifikasi koki, yang akan memverifikasi semua komponen berbeda yang disertakan dengan ChefDK untuk memastikan semuanya berfungsi dengan baik tanpa masalah seperti yang ditunjukkan di bawah ini.

# chef verify
Running verification for component 'berkshelf'
Running verification for component 'test-kitchen'
Running verification for component 'tk-policyfile-provisioner'
Running verification for component 'chef-client'
Running verification for component 'chef-dk'
Running verification for component 'chef-provisioning'
Running verification for component 'chefspec'
Running verification for component 'generated-cookbooks-pass-chefspec'
Running verification for component 'rubocop'
Running verification for component 'fauxhai'
Running verification for component 'knife-spork'
Running verification for component 'kitchen-vagrant'
Running verification for component 'package installation'
Running verification for component 'openssl'
Running verification for component 'inspec'
.......
---------------------------------------------
Verification of component 'test-kitchen' succeeded.
Verification of component 'chef-dk' succeeded.
Verification of component 'chefspec' succeeded.
Verification of component 'rubocop' succeeded.
Verification of component 'knife-spork' succeeded.
Verification of component 'openssl' succeeded.
Verification of component 'berkshelf' succeeded.
Verification of component 'chef-client' succeeded.
Verification of component 'fauxhai' succeeded.
Verification of component 'inspec' succeeded.
Verification of component 'tk-policyfile-provisioner' succeeded.
Verification of component 'kitchen-vagrant' succeeded.
Verification of component 'chef-provisioning' succeeded.
Verification of component 'package installation' succeeded.
Verification of component 'generated-cookbooks-pass-chefspec' succeeded.

Berikut ini adalah contoh kasus, di mana verifikasi koki gagal. Juga, harap perhatikan bahwa ruby ​​diperlukan oleh Chef, yang sudah tertanam dalam ChefDK.

# chef verify
..
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout.rb:289:in `invalid!': Expected process to exit with [0], but received '1' (Mixlib::ShellOut::ShellCommandFailed)
---- Begin output of /usr/bin/ohai -v ----
STDOUT: 
STDERR: /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:319:in `to_specs': Could not find 'chef-config' (= 12.8.0) - did find: [chef-config-12.7.2] (Gem::LoadError)

Kami mendapatkan pesan kesalahan ini:“Tidak dapat menemukan ‘chef-config’ (=12.8.0) – memang menemukan:[chef-config-12.7.2] (Gem::LoadError)”

Dalam pesan kesalahan di atas, chef-config yang disertakan dengan ChefDK adalah 12.7.2, yang merupakan versi lama, yang tidak kompatibel dalam pengaturan ini. Jadi, dalam hal ini, saya menginstal chef-config versi 12.8.0 secara manual.

Setelah itu, ketika saya menjalankan verifikasi koki, itu tidak memberikan pesan kesalahan di atas.

Verifikasi versi ChefDK

Saat Anda menjalankan perintah chef –version, itu akan menampilkan nomor versi ChefDK dan semua komponen yang menyertainya seperti yang ditunjukkan di bawah ini.

# chef --version
Chef Development Kit Version: 0.11.2
chef-client version: 12.7.2
berks version: 4.2.0
kitchen version: 1.5.0

Mengatur variabel ENV Chef

Anda juga harus mengatur variabel lingkungan terkait Chef. Misalnya:GEM_ROOT, GEM_HOME, GEM_PATH.

export GEM_ROOT="/opt/chefdk/embedded/lib/ruby/gems/2.1.0"
export GEM_HOME="/root/.chefdk/gem/ruby/2.1.0"
export GEM_PATH="/root/.chefdk/gem/ruby/2.1.0:/opt/chefdk/embedded/lib/ruby/gems/2.1.0"

Selain itu, jika Anda telah menginstal ruby ​​di sistem Anda, Anda harus memperbarui variabel PATH Anda sesuai untuk menggunakan ruby ​​yang disertakan dengan chefDK seperti yang ditunjukkan di bawah ini.

export PATH="/opt/chefdk/bin:/root/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/opt/chefdk/bin:/root/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/opt/chefdk/bin:/root/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

Perintah berikut akan menunjukkan kepada Anda semua variabel lingkungan Chef yang harus disetel.

chef shell-init bash

Cara cepat untuk menyetel variabel lingkungan ini adalah dengan menambahkan baris di atas ke file .bash_profile Anda seperti yang ditunjukkan di bawah ini.

echo 'eval "$(chef shell-init bash)"' >> ~/.bash_profile

Aturan Firewall untuk Mengakses Chef Manage

Selanjutnya, Anda perlu mengunduh starter kit Chef dari Chef Server Anda yang sudah berjalan.

Untuk mengakses Chef Manage GUI, di Chef Server, tambahkan aturan firewalld berikut untuk membuka port yang sesuai di server Chef.

firewall-cmd --direct  --add-rule ipv4 \
filter INPUT_direct 0 -i eth0 -p tcp \
 --dport 443 -j ACCEPT

firewall-cmd --direct  --add-rule ipv4 \
filter INPUT_direct 0 -i eth0 -p tcp \
 --dport 80 -j ACCEPT

firewall-cmd --direct  --add-rule ipv4 \
filter INPUT_direct 0 -i eth0 -p tcp \
 --dport 9683 -j ACCEPT

firewall-cmd --reload

Unduh Starter Kit dari Chef Manage GUI

Masuk ke Chef Manage GUI, dan klik tab “Administrasi” di bagian atas. Selanjutnya, pilih organisasi dari daftar. Dalam contoh ini, nama organisasi adalah "contoh". Setelah organisasi dipilih, klik “Starter Kit” dari menu di sisi kiri seperti yang ditunjukkan di bawah ini.

Ketika Anda mengklik "Unduh", Anda akan mendapatkan pesan peringatan ini:Apakah Anda yakin?:Kunci pengguna dan organisasi Anda akan disetel ulang. Apakah Anda yakin ingin melakukan ini?.

Klik Lanjutkan. Ini akan mengunduh file chef-starter.zip ke mesin lokal Anda.

Unzip Starter Kit

Transfer file chef-starter.zip ke workstation Chef, dan unzip di bawah direktori home root seperti yang ditunjukkan di bawah ini.

# cd ~
# unzip chef-starter.zip 
Archive:  chef-starter.zip
   creating: chef-repo/cookbooks/
   creating: chef-repo/cookbooks/starter/
   creating: chef-repo/cookbooks/starter/templates/
   creating: chef-repo/cookbooks/starter/templates/default/
  inflating: chef-repo/cookbooks/starter/templates/default/sample.erb  
   creating: chef-repo/cookbooks/starter/files/
   creating: chef-repo/cookbooks/starter/files/default/
  inflating: chef-repo/cookbooks/starter/files/default/sample.txt  
   creating: chef-repo/cookbooks/starter/recipes/
  inflating: chef-repo/cookbooks/starter/recipes/default.rb  
   creating: chef-repo/cookbooks/starter/attributes/
  inflating: chef-repo/cookbooks/starter/attributes/default.rb  
  inflating: chef-repo/cookbooks/starter/metadata.rb  
  inflating: chef-repo/cookbooks/chefignore  
  inflating: chef-repo/README.md     
  inflating: chef-repo/.gitignore    
   creating: chef-repo/.chef/
   creating: chef-repo/roles/
  inflating: chef-repo/.chef/knife.rb  
  inflating: chef-repo/roles/starter.rb  
  inflating: chef-repo/.chef/ramesh.pem  
  inflating: chef-repo/.chef/example-validator.pem

Jika Anda secara manual mengatur folder chef-repo, maka Anda perlu membuat sub-direktori di atas secara manual, dan menyalin file knife.rb, file organization-validator.pem (misalnya:example-validator.pem), dan nama pengguna.pem (misalnya:ramesh.pem) ke direktori yang ditunjukkan di atas.

Dapatkan Sertifikat SSL Chef Server

Pada tahap ini, jika Anda menjalankan daftar klien pisau, Anda akan mendapatkan pesan kesalahan ini seperti yang ditunjukkan di bawah ini:“ERROR:Validasi SSL gagal menghubungkan ke sertifikat host, verifikasi gagal”

# cd ~/chef-repo
# knife client list
ERROR: SSL Validation failure connecting to host: centos.example.com - SSL_connect returned=1 errno=0 state=error: certificate verify failed
ERROR: Could not establish a secure connection to the server.
Use `knife ssl check` to troubleshoot your SSL configuration.
If your Chef Server uses a self-signed certificate, you can use
`knife ssl fetch` to make knife trust the server's certificates.

Original Exception: OpenSSL::SSL::SSLError: SSL Error connecting to https://centos.example.com/organizations/example/clients - SSL_connect returned=1 errno=0 state=error: certificate verify failed

Verifikasi sertifikat gagal, karena kami belum mengunduh sertifikat SSL dari server Chef.

Untuk ini, jalankan perintah “knife ssl fetch” berikut seperti yang ditunjukkan di bawah ini.

# cd ~/chef-repo
# knife ssl fetch
WARNING: Certificates from centos.example.com will be fetched and placed in your trusted_cert
directory (/root/chef-repo/.chef/trusted_certs).

Knife has no means to verify these are the correct certificates. You should
verify the authenticity of these certificates after downloading.

Ini akan mengunduh sertifikat ke direktori truster_certs berikut.

# ls -l /root/chef-repo/.chef/trusted_certs
-rw-r--r--. 1 root root 1379 Mar 20 20:17 centos_example_com.crt

# cat /root/chef-repo/.chef/trusted_certs/centos_example_com.crt 
-----BEGIN CERTIFICATE-----
MIIDzDCCArSgAwIBAgIBADANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQGEwJVUzEQ
MA4GA1UECgwHWW91Q29ycDETMBEGA1UECwwKT3BlcmF0aW9uczEbMBkGA1UEAwwS
ZXJhdGlvbnMxGzAZBgNVBAMMEmNlbnRvcy5leGFtcGxlLmNvbTCCASIwDQYJKoZI
..
..
WLyr2ORLMcck/OGsubabO/koMNTqhl2JJPECNiDJh06MeZ/2+BOwGZSpXDbw+vFE
NJAsLfsTzihGWZ58einMFA==
-----END CERTIFICATE-----

Verifikasi Akhir Stasiun Kerja Chef

Jika workstation chef bekerja dengan baik, saat Anda menjalankan "knife client list", itu akan menampilkan semua klien yang terhubung ke workstation ini. Karena kami baru saja menginstalnya, kami hanya akan melihat validator organisasi Anda seperti yang ditunjukkan di bawah ini.

# cd ~/chef-repo

# knife client list
example-validator

Jika Anda menjalankan perintah ini pada mesin workstation chef yang sudah memiliki beberapa server yang terhubung, Anda akan melihat daftar semua server yang dikelola oleh chef.

Dalam contoh berikut, kita melihat 5 server terhubung ke stasiun kerja koki ini.

# knife client list
example-validator
node1
node2
node3
node4
node5

Linux
  1. Cara Menginstal dan Menguji Ansible di Linux

  2. Cara Menginstal Dan Menggunakan Flatpak Di Linux

  3. Cara Menginstal dan Menggunakan Traceroute di Linux

  1. Cara menginstal Elasticsearch dan Kibana di Linux

  2. Cara Menginstal RHEL 8 Di VMware Workstation

  3. Cara Menginstal Dan Mengatur cPanel Di Server Linux

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

  2. Cara menginstal dan menggunakan telnet di Kali Linux

  3. Bagaimana Cara Menginstal dan Menggunakan Layar Linux?