GNU/Linux >> Belajar Linux >  >> Linux

Cara Menginstal Server Otomatisasi Chef di Ubuntu 20.04

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!


Linux
  1. Cara Menginstal lokasi di Server Ubuntu

  2. Cara Menginstal MariaDB di Ubuntu 22.04

  3. Bagaimana Cara Menginstal Ubuntu Server 15.10 di Hyper-v?

  1. Cara Menginstal MySQL di Ubuntu 18.04

  2. Cara Memasang Server Minecraft di Ubuntu 18.04

  3. Cara Menginstal Nginx di Ubuntu 20.04

  1. Cara Menginstal MariaDB di Ubuntu 20.04

  2. Cara Menginstal Server VNC Di Ubuntu 14.04

  3. Cara menginstal OpenLDAP di Ubuntu Server 22.04