Chef adalah platform yang kuat untuk otomatisasi, menyederhanakan bagaimana infrastruktur dikelola, disebarkan, atau dikonfigurasi di seluruh jaringan. Chef beroperasi dengan mengubah infrastruktur menjadi kode. Pengembang kemudian dapat menyebarkan atau mengelola sumber daya di beberapa server atau node, tetapi sebelum pengembang menyebarkan kode ke lingkungan lain, mereka terlebih dahulu membuat dan mengujinya melalui workstation. Secara keseluruhan, Chef adalah salah satu alat terbaik untuk mengelola infrastruktur dari stasiun kerja.
Untuk kepatuhan, visibilitas node, dan alur kerja, Chef Automate menyediakan rangkaian lengkap kemampuan perusahaan. Perangkat lunak ini terintegrasi dengan produk sumber terbuka seperti Habitat, InSpec, dan Chef.
Dalam tutorial ini, kami akan menunjukkan cara menginstal server dan klien Chef di Ubuntu 20.04.
Prasyarat
- Dua VPS Ubuntu 20.04 baru di Atlantic.Net Cloud Platform.
Satu Klien
Satu Server
- Kata sandi root yang dikonfigurasi di server Anda
Langkah 1 – Buat Server Cloud Atlantic.Net
Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Ubuntu 20.04 sebagai sistem operasi dengan setidaknya 4GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.
Setelah Anda masuk ke server Ubuntu 20.04 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.
apt-get update -y
Langkah 2 – Siapkan Nama Inang
Sebelum memulai, Anda perlu menyiapkan nama host dan resolusi nama host yang sepenuhnya memenuhi syarat di server Chef Anda.
Pertama, atur nama host dengan perintah berikut:
hostnamectl set-hostname chef.example.com
Selanjutnya, buka file /etc/hosts dan ikat alamat IP server Anda dengan nama host:
nano /etc/hosts
Tambahkan baris berikut:
chef-server-ip chef.example.com
Simpan dan tutup file setelah Anda selesai.
Langkah 3 – Instal Chef Server
Pertama, instal dependensi yang diperlukan dengan menjalankan perintah berikut di server Chef:
apt-get install curl wget gnupg2 -y
Selanjutnya, unduh paket Chef dengan perintah berikut:
wget https://packages.chef.io/files/stable/chef-server/13.1.13/ubuntu/18.04/chef-server-core_13.1.13-1_amd64.deb
Setelah paket diunduh, instal dengan menjalankan perintah berikut:
dpkg -i chef-server-core_13.1.13-1_amd64.deb
Setelah paket diinstal, Anda perlu mengkonfigurasi ulang server Chef. Anda dapat mengkonfigurasi ulang dengan perintah berikut:
chef-server-ctl reconfigure
Anda akan diminta untuk menerima persyaratan lisensi seperti yang ditunjukkan di bawah ini:
+---------------------------------------------+ Chef License Acceptance Before you can continue, 3 product licenses must be accepted. View the license at https://www.chef.io/end-user-license-agreement/ Licenses that need accepting: * Chef Infra Server * Chef Infra Client * Chef InSpec Do you accept the 3 product licenses (yes/no)? > yes
Ketik ya untuk menerima lisensi dan tekan enter untuk melanjutkan. Setelah instalasi selesai, Anda akan mendapatkan output berikut:
Running handlers: Running handlers complete Chef Infra Client finished, 482/1032 resources updated in 04 minutes 34 seconds Chef Server Reconfigured!
Catatan :Instalasi akan memakan waktu lebih dari 5 menit
Langkah 4 – Buat Akun Administrator dan Organisasi
Pertama, buat direktori untuk menyimpan semua kunci.
mkdir ~/.chef_key
Selanjutnya, jalankan perintah berikut untuk membuat akun administrator:
chef-server-ctl user-create atlanticuser Atlantic User [email protected] 'mypassword' --filename ~/.chef_key/atlantic.pem
Perintah di atas akan membuat akun admin dengan nama atlanticuser, nama lengkap “Atlantic User,” kata sandi “mypassword,” dan menghasilkan keyfile di ~/.chef_key/atlantic.pem.
Selanjutnya, buat organisasi dengan perintah berikut:
chef-server-ctl org-create atlantic "atlantic cloud" --association_user atlanticuser --filename ~/.chef_key/atlantic-org.pem
Perintah di atas akan membuat organisasi dengan nama atlantic, nama lengkap “atlantic cloud,” pengguna asosiasi “atlanticuser,” dan menghasilkan keyfile di ~/.chef_key/atlantic-org.pem.
Anda sekarang dapat memverifikasi kunci yang dihasilkan dengan perintah berikut:
ls ~/.chef_key/
Anda akan melihat output berikut:
atlantic.pem hitjethva.pem
Langkah 5 – Instal Konsol Manajemen Web Chef
Selanjutnya, Anda perlu menginstal Chef manage di server Anda. Chef manage adalah add-on yang dapat digunakan untuk mengelola server Chef dari antarmuka berbasis web.
Anda dapat menginstal Chef manage dengan perintah berikut:
chef-server-ctl install chef-manage
Selanjutnya, konfigurasikan ulang server Chef dan kelola Chef dengan perintah berikut:
chef-server-ctl reconfigure chef-manage-ctl reconfigure
Anda akan diminta untuk menerima perjanjian lisensi seperti yang ditunjukkan di bawah ini:
Press any key to continue. Type 'yes' to accept the software license agreement or anything else to cancel. yes
Ketik ya dan tekan Enter untuk menyelesaikan instalasi.
Langkah 6 – Instal Chef Client
Selanjutnya, Anda harus masuk ke mesin klien Chef dan menginstal paket klien Chef.
Jalankan perintah berikut untuk mengunduh paket workstation Chef:
wget https://packages.chef.io/files/stable/chef-workstation/20.6.62/debian/10/chef-workstation_20.6.62-1_amd64.deb
Setelah paket diunduh, instal dengan perintah berikut:
dpkg -i chef-workstation_20.6.62-1_amd64.deb
Setelah menginstal klien Chef, Anda perlu membuat repo Chef di sistem Anda. Direktori chef-repo akan menyimpan buku masak Chef Anda dan file terkait lainnya.
Anda dapat membuatnya dengan perintah berikut:
chef generate repo chef-repo
Anda akan diminta untuk menerima lisensi seperti yang ditunjukkan di bawah ini:
+---------------------------------------------+ Chef License Acceptance Before you can continue, 3 product licenses must be accepted. View the license at https://www.chef.io/end-user-license-agreement/ Licenses that need accepting: * Chef Workstation * Chef Infra Client * Chef InSpec Do you accept the 3 product licenses (yes/no)? > yes
Ketik ya dan tekan Enter untuk menerima Lisensi. Anda akan mendapatkan output berikut:
Persisting 3 product licenses... ✔ 3 product licenses persisted. +---------------------------------------------+ Generating Chef Infra repo chef-repo - Ensuring correct Chef Infra repo file content Your new Chef Infra repo is ready! Type `cd chef-repo` to enter it.
Anda dapat membuat daftar semua file dan direktori yang dihasilkan di dalam repo Chef dengan perintah berikut:
ls chef-repo
Anda akan mendapatkan output berikut:
chefignore cookbooks data_bags LICENSE policyfiles README.md
Selanjutnya, Anda perlu membuat direktori .chef untuk menyimpan semua file konfigurasi Knife dan file .pem yang digunakan untuk otentikasi pasangan kunci RSA dengan server Chef.
Anda dapat membuatnya dengan perintah berikut:
mkdir ~/chef-repo/.chef
Selanjutnya, buat pasangan kunci SSH dengan perintah berikut:
ssh-keygen -b 4096
Jangan berikan kata sandi apa pun, cukup tekan Enter untuk menghasilkan pasangan kunci SSH seperti yang ditunjukkan di bawah ini:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa Your public key has been saved in /root/.ssh/id_rsa.pub The key fingerprint is: SHA256:OvOCW9vNnVfs8II8TKJnRxv9vwRu5R4JqRxWPVU1rTY [email protected] The key's randomart image is: +---[RSA 4096]----+ | .B| | . +| | . + | | . E .| | S o * + | | . + B B +| | .= . O * @ | | ...*.oo.O.= =| | ....ooo.oo ++| +----[SHA256]-----+
Selanjutnya, salin kunci yang dihasilkan ke mesin server Chef dengan perintah berikut:
ssh-copy-id [email protected]
Selanjutnya, Anda perlu menyalin semua file .pem dari server Chef ke mesin klien. Anda dapat menyalinnya dengan perintah berikut:
scp [email protected]:~/.chef_key/*.pem ~/chef-repo/.chef/
Anda akan mendapatkan output berikut:
atlantic.pem 100% 1674 2.2MB/s 00:00 hitjethva.pem 100% 1678 2.4MB/s 00:00
Langkah 7 – Konfigurasikan Pisau dan Buat Buku Masak
Selanjutnya, Anda perlu mengonfigurasi Knife dan membuat buku masak di mesin klien.
Pertama, ubah ke repositori dengan perintah:
cd ~/chef-repo
Selanjutnya, buat buku masak pertama Anda dengan perintah berikut:
chef generate cookbook my_cookbook
Setelah buku masak dibuat, buat file konfigurasi Pisau baru:
nano ~/chef-repo/.chef/config.rb
Tambahkan baris berikut:
current_dir = File.dirname(__FILE__) log_level :info log_location STDOUT node_name 'hitjethva' client_key "hitjethva.pem" validation_client_name 'atlantic-validator' validation_key "atlantic-validator.pem" chef_server_url 'https://chef.example.com/organizations/atlantic' cache_type 'BasicFile' cache_options( :path => "#{ENV['HOME']}/.chef/checksums" ) cookbook_path ["#{current_dir}/../cookbooks"]
Simpan dan tutup file.
Pastikan semua nama cocok dengan nama organisasi dan nama pengguna admin Anda.
Selanjutnya, edit file /etc/hosts dan tambahkan nama lengkap server Chef Anda.
nano /etc/hosts
Tambahkan baris berikut:
chef-server-ip chef.example.com
Simpan dan tutup file setelah Anda selesai.
Selanjutnya, ambil sertifikat SSL dari server Chef dengan perintah berikut:
cd ~/chef-repo knife ssl fetch
Anda akan mendapatkan output berikut:
WARNING: Certificates from chef.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. Adding certificate for chef_example_com in /root/chef-repo/.chef/trusted_certs/chef_example_com.crt
Anda juga dapat memverifikasi SSL dengan perintah berikut:
knife ssl check
Anda akan mendapatkan output berikut:
Connecting to host chef.example.com:443 Successfully verified certificates from `chef.example.com'
Langkah 8 – Bootstrap Node Klien
Selanjutnya, Anda perlu 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.
Pada mesin klien Chef, ubah direktori menjadi .chef dengan perintah berikut:
cd ~/chef-repo/.chef
Selanjutnya, bootstrap klien dengan perintah berikut:
knife bootstrap chef.example.com -x root -P rootpassword --node-name clientnode
Setelah instalasi selesai, Anda akan mendapatkan output berikut:
Patents: https://www.chef.io/patents [chef.example.com] resolving cookbooks for run list: [] [chef.example.com] Synchronizing Cookbooks: [chef.example.com] Installing Cookbook Gems: [chef.example.com] [chef.example.com] Compiling Cookbooks... [chef.example.com] [2020-10-02T07:56:21+00:00] WARN: Node clientnode has an empty run list. [chef.example.com] Converging 0 resources [chef.example.com] [chef.example.com] Running handlers: Running handlers complete Chef Infra Client finished, 0/0 resources updated in 02 seconds
Anda sekarang dapat membuat daftar semua node dengan perintah berikut:
knife client list
Anda akan mendapatkan output berikut:
atlantic-validator clientnode
Langkah 9 – Akses Chef Kelola Konsol
Sekarang, buka browser web Anda dan akses konsol pengelolaan Chef menggunakan URL http://chef.server-ip/login. Anda akan melihat halaman login Chef:
Berikan nama pengguna dan sandi admin Anda, lalu klik Tanda di tombol. Anda akan melihat dasbor Chef di halaman berikut:
Kesimpulan
Dalam panduan di atas, Anda belajar cara menginstal server dan klien Chef di server Ubuntu 20.04. Anda juga mempelajari komponennya dengan pengaturan instalasi dan konfigurasi. Untuk informasi lebih lanjut, Anda dapat mengunjungi dokumentasi Chef. Cobalah Chef di server pribadi virtual Anda dari Atlantic.Net!