GNU/Linux >> Belajar Linux >  >> Cent OS

Buat Buku Masak Koki Sederhana untuk Mengelola Infrastruktur CentOS / RHEL Anda

Buku masak adalah salah satu komponen penting dalam sistem manajemen konfigurasi Chef; memungkinkan kita untuk mengonfigurasi dan melakukan tugas khusus (mendorong perubahan) pada node chef jarak jauh.

Dalam panduan ini, kita akan membuat buku masak dan kemudian memberi tahu Chef untuk mendorongnya, yaitu menjalankan langkah-langkah yang diuraikan dalam buku masak ke node.

Panduan ini mengasumsikan bahwa Anda memiliki lingkungan Chef yang berfungsi yang mencakup server, workstation, dan setidaknya satu node untuk mendorong perubahan konfigurasi.

BACA: Cara Menyiapkan Chef 12 di CentOS 7 / RHEL 7

Buku Masak:

Chef Cookbooks adalah unit yang menyimpan konfigurasi dan detail kebijakan untuk membawa node ke status tertentu. Buku masak dibuat di workstation dan kemudian diunggah ke server Chef. Buku masak kemudian diberikan ke node “run-list” yang merupakan daftar tindakan berurutan yang akan dijalankan pada node untuk membawa node ke keadaan yang diinginkan.

Buat Buku Masak Koki Sederhana:

Di bagian ini, kita akan membuat buku masak sederhana untuk menginstal dan mengkonfigurasi server web Apache.

BACA:Konfigurasi LAMP di CentOS 7 / RHEL 7

Masuk ke ruang kerja Chef Anda, buka ~/chef-repo/cookbooks . Anda direktori.

cd ~/chef-repo/cookbooks/

Buat buku masak yang disebut “httpd “. Ganti “httpd “, jika Anda ingin menamainya secara berbeda.

chef generate cookbook httpd

Keluaran:

Generating cookbook httpd
- Ensuring correct cookbook file content
- Ensuring delivery configuration
- Ensuring correct delivery build cookbook content

Your cookbook is ready. Type `cd httpd` to enter it.

There are several commands you can run to get started locally developing and testing your cookbook.
Type `delivery local --help` to see a full list.

Why not start by writing a test? Tests for the default recipe are stored at:

test/recipes/default_test.rb

If you'd prefer to dive right in, the default recipe can be found at:

recipes/default.rb

Buka direktori buku masak yang baru Anda buat, mis., httpd .

cd httpd

Saat Anda masuk ke direktori buku masak baru, Anda bisa melihat di bawah struktur direktori di dalamnya.

Keluaran:

-rw-r--r--. 1 root root   47 Nov 12 21:18 Berksfile
-rw-r--r--. 1 root root 1133 Nov 12 21:18 chefignore
-rw-r--r--. 1 root root  568 Nov 12 21:18 metadata.rb
-rw-r--r--. 1 root root   53 Nov 12 21:18 README.md
drwxr-xr-x. 2 root root   23 Nov 12 21:18 recipes
drwxr-xr-x. 3 root root   38 Nov 12 21:18 spec
drwxr-xr-x. 3 root root   20 Nov 12 21:18 test

Resep:

Resep terdiri dari serangkaian sumber daya yang mendefinisikan status layanan atau aplikasi tertentu, misalnya, satu sumber dapat mengatakan "layanan NTP harus berjalan", yang lain mungkin mengatakan "layanan telnet harus dihentikan"

Resepnya tidak terbatas hanya untuk mengelola layanan; itu juga dapat digunakan untuk menjalankan perintah, manajemen pengguna, dan banyak lagi.

BACA:Berbagai jenis sumber daya.

Pergi ke direktori resep. Di sana Anda dapat melihat file bernama “default.rb “. Kami akan menggunakan file ini untuk menambahkan sumber daya yang diperlukan untuk menjalankan server Apache.

cd recipes
cat default.rb

Keluaran:

Secara default, file memiliki baris header di dalamnya.

#
# Cookbook Name:: httpd
# Recipe:: default
#
# Copyright (c) 2016 The Authors, All Rights Reserved.

Instal Apache:

Untuk memulai, mari tambahkan sumber daya untuk menginstal paket apache.

package 'httpd' do
  action :install
end

Dimana,

paket – Mendefinisikan sumber daya paket

httpd –  Nama paket yang ingin Anda instal, harus merupakan nama paket yang sah.

tindakan :instal –  Ini menentukan tindakan untuk sumber daya “paket “, dalam kasus kami, pemasangan httpd .

Ketika resep ini berjalan di node, Chef akan memeriksa apakah Apache telah diinstal, jika ya, ia akan melewati resource ini dan beralih ke resource berikutnya. Jika tidak, ia akan menginstal Apache menggunakan penginstal sistem.

Kelola Layanan Apache:

Selanjutnya, buat layanan Apache untuk memulai secara otomatis pada saat startup sistem dan juga layanan tersebut harus aktif dan berjalan. Kode di bawah ini melakukan apa yang kami butuhkan.

service 'httpd' do
  action [ :enable, :start ]
end

Dimana,

layanan – Mendefinisikan sumber daya layanan.

httpd –  Nama layanan, harus merupakan nama layanan yang sah.

tindakan [ :enable, :start ] – Tentukan tindakan yang ingin Anda lakukan. Dalam kasus kami, sumber daya ini akan dimulai “httpd ” dan aktifkan saat memulai.

Berkas Indeks:

Sumber daya kami berikutnya adalah untuk menempatkan index.html file di root dokumen server Apache. Anda hanya perlu menentukan lokasi di mana ingin file tersebut dan dari mana mendapatkan file tersebut.

cookbook_file "/var/www/html/index.html" do
  source "index.html"
  mode "0644"
end

Dimana,

file_buku masak – Sumber daya untuk mentransfer file dari sub-direktori httpd/files ke jalur yang disebutkan yang terletak di node chef.

sumber – Tentukan nama file sumber. File biasanya ditemukan di COOK_BOOKS/files .

modus – Menyetel izin untuk file.

Membuat File Indeks:

Karena kami telah mendefinisikan “file_buku masak ”, kita perlu membuat file sumber “index.html ” di dalam file subdirektori buku masak Anda.

cd ~/chef-repo/cookbooks

Buat subdirektori “file ” di bawah buku masak Anda.

mkdir httpd/files

Tambahkan teks sederhana ke dalam index.html .

echo "Installed and Setup Using Chef" > httpd/files/index.html

Firewall:

Sumber daya terakhir kami adalah untuk mengonfigurasi firewall untuk mengizinkan http dan https lalu lintas dari mesin eksternal.

execute 'httpd_firewall' do
  command '/usr/bin/firewall-cmd  --permanent --zone public --add-service http'
  ignore_failure true
end

execute 'reload_firewall' do
  command '/usr/bin/firewall-cmd --reload'
  ignore_failure true
end

Dimana,

jalankan – Sumber daya untuk menjalankan satu perintah.

perintah – Mendefinisikan perintah aktual yang ingin Anda jalankan pada node.

abaikan_kegagalan – Lanjutkan menjalankan resep meskipun sumber daya gagal karena alasan apa pun, ini akan berguna saat sistem tidak mengaktifkan firewallD.

Versi final default.rb akan terlihat seperti di bawah ini.

vi ~chef-repo/cookbooks/httpd/recpies/default.rb

Keluaran:

#
# Cookbook Name:: httpd
# Recipe:: default
#
# Copyright (c) 2016 The Authors, All Rights Reserved.

package 'httpd' do
  action :install
end

service 'httpd' do
  action [ :enable, :start ]
end

cookbook_file "/var/www/html/index.html" do
  source "index.html"
  mode "0644"
end

execute 'httpd_firewall' do
  command '/usr/bin/firewall-cmd  --permanent --zone public --add-service http'
  ignore_failure true
end

execute 'reload_firewall' do
  command '/usr/bin/firewall-cmd --reload'
  ignore_failure true
end

Unggah Buku Masak:

Setelah buku masak Anda selesai, Anda dapat mengunggahnya ke server Chef Anda.

knife cookbook upload httpd

Keluaran:

Uploading httpd        [0.1.0]
Uploaded 1 cookbook.

Periksa apakah Anda dapat membuat daftar buku masak yang baru saja Anda unggah.

knife cookbook list

Keluaran:

httpd   0.1.0

Untuk menghapus buku masak (opsional ).

knife cookbook delete cookbook_name

Tambahkan Buku Masak ke node Anda:

Anda dapat menambahkan buku masak ke run_list dari node tertentu menggunakan perintah berikut. Ganti chefclient.itzgeek.local dengan nama simpul klien Anda.

knife node run_list add chefclient.itzgeek.local httpd

Keluaran:

chefclient.itzgeek.local:
  run_list: recipe[httpd]

Untuk menghapus resep tertentu dari run_list (opsional ).

knife node run_list remove chefclient.itzgeek.local recipe[cookbook_name]

Mengambil Konfigurasi:

Masuk ke node klien tempat perangkat lunak klien Chef dijalankan.

BACA:Melakukan Bootstrap pada Node Baru dengan Pisau

Jalankan chef-client perintah pada node klien untuk memeriksa dengan server Chef apakah ada run_list baru dan jalankan run_list . itu yang telah ditetapkan untuk itu.

chef-client

Keluaran:

Starting Chef Client, version 12.16.42
resolving cookbooks for run list: ["httpd"]
Synchronizing Cookbooks:
  - httpd (0.1.0)
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 5 resources
Recipe: httpd::default
  * yum_package[httpd] action install
    - install version 2.4.6-40.el7.centos.4 of package httpd
  * service[httpd] action enable
    - enable service service[httpd]
  * service[httpd] action start
    - start service service[httpd]
  * cookbook_file[/var/www/html/index.html] action create (up to date)
  * execute[httpd_firewall] action run
    - execute /usr/bin/firewall-cmd  --permanent --zone public --add-service http
  * execute[reload_firewall] action run
    - execute /usr/bin/firewall-cmd --reload

Running handlers:
Running handlers complete
Chef Client finished, 5/6 resources updated in 24 seconds

Anda dapat memverifikasi bahwa ini berfungsi dengan mengunjungi alamat IP node atau nama domain Anda melalui browser web.

http://your-ip-addr-ess/

Keluaran:

Ekstra:

Buku Masak Koki untuk membuat pengguna:

Anda dapat menggunakan buku masak berikut untuk membuat pengguna baru. Ganti hijau nilai sesuai dengan lingkungan Anda.

group "raj" do
  gid 9999
end


user 'raj' do
  comment 'Admin [at] ITzGeek'
  uid '9999'
  gid '9999'
  manage_home true
  home '/home/raj'
  shell '/bin/bash'
  password '$6$89lC6OcN$xGO/4ia1j8YXY5TytLFccCjeITSCkgCgQbFMloF4O/kUWFOWhQBH5/BavEkvMj.0fuGx1pMxoUkKF6s9Tpnoj/'
end

Itu saja.


Cent OS
  1. Cara membuat dan mengaktifkan Partisi Swap di Centos / RHEL 8

  2. CentOS / RHEL :Cara membuat dan menghosting repositori yum melalui httpd

  3. Cara Membuat Partisi /boot Baru di CentOS / RHEL

  1. Pantau dan Kelola layanan Anda dengan Monit di CentOS 6 / RHEL 6

  2. Cara membuat jembatan jaringan di bawah CentOS/RHEL

  3. Cara Membuat Spanduk SSH di Server CentOS/RHEL

  1. Cara Membuat File Kickstart Untuk CentOS/Fedora/RedHat (RHEL)

  2. Cara Membuat Jembatan Jaringan di CentOS 7 / RHEL 7

  3. Instal PartKeepr (Sistem Pengelolaan Inventaris) di CentOS &RHEL