Tutorial Chef - Transformasikan Infrastruktur Ke Dalam Kod



Chef Tutorial adalah blog kedua siri blog Chef. Blog ini menerangkan seni bina Chef dan komponen Chef seperti Buku Masak, Resipi dll dengan contoh.

Tutorial Chef

Chef Tutorial adalah blog kedua siri blog Chef. Dalam saya blog sebelumnya , Saya telah menjelaskan apa itu Chef, Pengurusan Konfigurasi dan bagaimana Chef mencapai Pengurusan Konfigurasi dengan bantuan kes penggunaan Gannett.

Dalam Tutorial Chef ini topik berikut akan dibahas:





Saya pasti selepas membaca buku saya blog sebelumnya anda pasti ingin tahu bagaimana sebenarnya Chef berfungsi. Bahagian pertama blog Tutorial Chef ini akan menerangkan kepada anda mengenai seni bina Chef secara terperinci, yang akan menghilangkan semua keraguan anda.



Tutorial Chef - Senibina Chef

Seperti yang ditunjukkan dalam rajah di bawah, terdapat tiga komponen Chef utama:

  • Stesen kerja
  • Pelayan
  • Nod

Senibina Chef - Tutorial Chef - Edureka

Tutorial Chef - Workstation



Workstation adalah lokasi dari mana semua konfigurasi Chef beradaberjaya. Mesin ini menyimpan semua data konfigurasi yang kemudiannya dapat ditolak ke Chef Server pusat. Konfigurasi ini diuji di stesen kerja sebelum memasukkannya ke Pelayan Chef. Stesen kerja terdiri daripada alat baris perintah yang dipanggil Pisau, yang digunakan untuk berinteraksi dengan Chef Server. Terdapat beberapa stesen kerja yang bersama-sama menguruskan Chef Server pusat.

Stesen kerja bertanggungjawab untuk melaksanakan fungsi berikut:

  • Menulis Buku Masak dan Resipi yang kemudiannya akan ditolak ke Chef Server pusat
  • Menguruskan Nod pada Chef Server tengah

Sekarang, marilah kita memahami perkara yang disebutkan di atas satu persatu.

Menulis Buku Masak dan Resipi yang kemudiannya akan ditolak ke Chef Server pusat

Resepi: Resipi adalah kumpulan sumber yang menerangkan konfigurasi atau dasar tertentu. Ia menerangkan semua yang diperlukan untuk mengkonfigurasi bahagian sistem. Pengguna menulis Resipi yang menerangkan bagaimana Chef menguruskan aplikasi dan utiliti (seperti Apache HTTP Server, MySQL, atau Hadoop) dan bagaimana ia dikonfigurasi.

Resipi ini menerangkan serangkaian sumber yang seharusnya berada dalam keadaan tertentu, iaitu Paket yang harus dipasang, perkhidmatan yang seharusnya berjalan, atau fail yang harus ditulis.

Nanti di blog , Saya akan menunjukkan kepada anda cara menulis Resipi untuk memasang pakej Apache2 di Chef Nodes dengan menulis kod ruby ​​di Chef Workstation.

Buku masakan: Pelbagai Resipi boleh dikumpulkan bersama untuk membentuk Buku Masak. Buku Masak menentukan senario dan mengandungi semua yang diperlukan untuk menyokong senario itu:

  • Resipi, yang menentukan sumber yang akan digunakan dan urutan di mana ia akan digunakan
  • Nilai atribut
  • Pembahagian fail
  • Templat
  • Sambungan untuk Chef, seperti perpustakaan, definisi, dan sumber tersuai

Menguruskan Nod pada Chef Server tengah

Sistem Workstation akan mempunyai utiliti baris perintah yang diperlukan, untuk mengawal dan mengurus setiap aspek Server Chef pusat. Perkara seperti menambahkan Node baru ke Chef Server pusat, menghapus Node dari Chef Server pusat, mengubah konfigurasi Node dll semuanya boleh diuruskan dari Workstation itu sendiri.

Sekarang mari kita lihat, komponen Workstation apa yang diperlukan untuk melaksanakan fungsi di atas.

Stesen kerja mempunyai dua komponen utama:

Utiliti pisau: Alat baris arahan ini boleh digunakan untuk berkomunikasi dengan Chef Server pusat dari Workstation. Menambah, membuang, mengubah konfigurasi Nodes di Chef Server pusat akan dilakukan dengan menggunakan utiliti Knife ini. Menggunakan utiliti Pisau, Buku Masak boleh dimuat naik ke Pelayan dan Peranan Chef pusat, persekitaran juga dapat dikendalikan. Pada asasnya, setiap aspek dari Chef Server pusat dapat dikendalikan dari Workstation menggunakan utiliti Knife.

Repositori Chef tempatan: Ini adalah tempat di mana setiap komponen konfigurasi Server Chef pusat disimpan. Repositori Chef ini dapat diselaraskan dengan Chef Server pusat (sekali lagi menggunakan utiliti pisau itu sendiri).

Tutorial Chef - Pelayan Chef

Chef Server bertindak sebagai hab untuk data konfigurasi. Pelayan Chef menyimpan Buku Cook, dasar yang diterapkan pada Node, dan metadata yang menerangkan setiap Node berdaftar yang dikendalikan oleh Chef-Client.

Node menggunakan Chef-Client untuk meminta maklumat konfigurasi Chef Server, seperti Resipi, Templat, dan pengedaran fail. Chef-Client kemudian melakukan seberapa banyak konfigurasi berfungsi pada Node itu sendiri (dan bukan pada Chef Server). Setiap Node mempunyai perisian Chef Client yang terpasang, yang akan menurunkan konfigurasi dari Chef Server pusat yang berlaku untuk Node tersebut. Pendekatan berskala ini mengedarkan usaha konfigurasi ke seluruh organisasi.

Tutorial Chef - Chef Nodes

Node boleh menjadi pelayan maya berasaskan awan atau pelayan fizikal di pusat data anda sendiri, yang diuruskan menggunakan Chef Server pusat. Komponen utama yang perlu ada di Node adalah ejen yang akan menjalin komunikasi dengan Chef Server pusat. Ini dipanggil Chef Client.

Chef Client melakukan fungsi berikut:

  • Ia bertanggungjawab untuk berinteraksi dengan Chef Server pusat.
  • Ia menguruskan pendaftaran awal Node ke Chef Server pusat.
  • Ia mengeluarkan Buku Cook, dan menggunakannya pada Node, untuk mengkonfigurasinya.
  • Pengundian berkala dari Chef Server pusat untuk mengambil item konfigurasi baru, jika ada.

Klik di sini untuk mengetahui cara memasang Chef Server, Workstation dan Node

Tutorial Chef - Kelebihan Chef:

Tutorial Chef ini tidak akan lengkap sekiranya, saya tidak memasukkan faedah utama Chef:

  • Anda boleh mengautomasikan keseluruhan infrastruktur menggunakan Chef. Semua tugas yang dilakukan secara manual, kini dapat dilakukan melalui alat Chef.
  • Anda boleh mengkonfigurasi ribuan nod dalam beberapa minit menggunakan Chef.
  • Automasi Chef berfungsi dengan sebilangan besar tawaran awan awam seperti .
  • Chef bukan sahaja akan mengotomatisasi sesuatu, tetapi juga akan memastikan sistem tetap diperiksa secara konsisten, dan mengesahkan bahawa sistem tersebut sebenarnya dikonfigurasi dengan cara yang diperlukan (Chef Agent / Client melakukan tugas ini). Sekiranya seseorang melakukan kesalahan dengan mengubah fail, Chef akan membetulkannya.
  • Seluruh infrastruktur dapat direkam dalam bentuk repositori Chef, yang dapat digunakan sebagai cetak biru untuk membuat infrastruktur dari awal.

Saya harap anda telah menikmati tutorial Chef ini hingga sekarang, cukup dengan catatan teori! mari kita bersenang-senang dengan hands-on.

Tutorial Chef | Bermula dengan Chef | Edureka

Tutorial Chef - Hands-On

Di sini saya akan menerangkan cara membuat Resepi, Buku Masak dan Templat di Chef Workstation. Saya juga akan menerangkan bagaimana anda menggunakan Buku Cook dari Workstation ke Chef-Client (Chef Node).

Saya menggunakan dua Imej Maya satu untuk Chef Workstation dan satu lagi untuk Chef Node. Untuk Chef Server saya akan menggunakan versi Chef yang dihoskan (di cloud). Anda juga boleh menggunakan mesin fizikal untuk Chef Server.

Langkah 1: Pasang Chef DK (Development Kit) di Chef Workstation anda.

Chef DK adalah pakej yang mengandungi semua alat pengembangan yang anda perlukan semasa membuat kod Chef. Berikut adalah pautan untuk memuat turun Chef DK .

program round robin di c

Di sini, pilih sistem operasi yang anda gunakan. Saya menggunakan CentOS 6.8. Jadi, saya akan klik Red Hat Enterprise Linux .

Salin pautan mengikut versi CentOS yang anda gunakan. Saya menggunakan CentOS 6, kerana anda dapat melihat bahawa saya telah menyerlahkan pada tangkapan skrin di atas.

Pergi ke terminal Workstation anda dan muat turun Chef DK dengan menggunakan perintah wget dan tampal pautan.

Laksanakan ini:

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

Pakej sekarang dimuat turun. Sudah tiba masanya untuk memasang pakej ini menggunakan rpm.

Laksanakan ini:

rpm -ivh chefdk-1.0.3-1.el6.x86_64.rpm

Chef DK kini dipasang di Workstation saya.

Langkah 2: Buat Resipi di Workstation

Mari kita mulakan dengan membuat Resipi di Workstation dan mengujinya secara tempatan untuk memastikannya berfungsi.Buat folder bernama chef-repo. Kami boleh membuat Resipi kami di dalam folder ini.

Laksanakan ini:

mkdir chef-repo cd chef-repo

Di direktori chef-repo ini saya akan membuat Resipi bernama edureka.rb. .rb ialah peluasan yang digunakan untuk ruby. Saya akan menggunakan editor vim, anda boleh menggunakan editor lain yang anda mahukan seperti gedit, emac, vi dll.

Laksanakan ini:

vim edureka.rb

Di sini tambahkan perkara berikut:

fail '/ etc / motd' content 'Welcome to Chef' akhir

R iniecipe adalah dureka .rb membuat fail bernama / etc / motd dengan kandungan 'Welcome to Chef'.

cara menggunakan iterator java

Sekarang saya akan menggunakan Resipi ini untuk memeriksa sama ada ia berfungsi.

Laksanakan ini:

chef-apply edureka.rb

Jadi ada fail yang dibuat di chef-repo yang mempunyai kandungan Selamat datang ke Chef.

Langkah 3: Mfail Resipi odifying untuk memasang pakej httpd

Saya akan mengubah Resipi untuk memasang pakej httpd di Workstation saya dan menyalin fail index.html ke root dokumen lalai untuk mengesahkan pemasangannya. Tindakan lalai untuk sumber pakej adalah pemasangan, oleh itu saya tidak perlu menentukan tindakan itu secara berasingan.

Laksanakan ini:

vim edureka.rb

Di sini tambahkan perkara berikut:

pakej 'perkhidmatan httpd' httpd 'lakukan tindakan [: aktifkan,: mula] fail akhir' /var/www/html/index.html 'buat kandungan' Selamat datang di Apache in Chef 'akhir

Sekarang saya akan menerapkan konfigurasi ini dengan melaksanakan perintah di bawah:

Laksanakan ini:

chef-apply edureka.rb

Pelaksanaan perintah menerangkan dengan jelas setiap contoh dalam Resipi. Ia memasang pakej Apache, membolehkan dan memulakan perkhidmatan httpd di Workstation. Dan ia membuat file index.html di root dokumen lalai dengan kandungan 'Selamat Datang di Apache in Chef'.

Sekarang sahkan pemasangan Apache2 dengan membuka penyemak imbas web anda. Taipkan alamat IP awam anda atau nama hos anda. Dalam kes saya, ia adalah localhost.

Langkah 4: Sekarang kami akan membuat Buku Masakan pertama kami.

Buat direktori yang disebut buku masakan, dan jalankan perintah di bawah ini untuk menghasilkan Buku Masak.

Laksanakan ini:

mkdir buku masakan cd buku masakan tukang masak menjana buku masakan httpd_deploy

httpd_deploy adalah nama yang diberikan kepada Buku Masak. Anda boleh memberikan nama yang anda mahukan.

Mari kita beralih ke direktori baru ini httpd_deploy.

Laksanakan ini:

cd httpd_deploy

Sekarang mari kita lihat struktur fail dari Cookbook yang dibuat.

Laksanakan ini:

pokok

Langkah 5: Cbuat semula fail Templat.

Sebelumnya, saya membuat fail dengan beberapa kandungan, tetapi tidak sesuai dengan struktur Resipi dan Buku Masak saya. Oleh itu, mari kita lihat bagaimana kita dapat membuat Templat untuk halaman index.html.

Laksanakan ini:

chef menghasilkan templat httpd_deploy index.html

Sekarang jika anda melihat struktur fail Cookbook saya, ada folder yang dibuat dengan templat nama dengan file index.html.erb. Saya akan mengedit fail templat index.html.erb ini dan menambahkan Resipi saya padanya. Rujuk contoh di bawah:

Pergi ke direktori lalai

Laksanakan ini:

cd / root / chef-repo / cookbook / httpd_deploy / templates / lalai

Di sini, edit templat index.html.erb dengan menggunakan mana-mana editor yang anda selesa. Saya akan menggunakan editor vim.

Laksanakan ini:

vim index.html.erb

Sekarang tambahkan yang berikut:

Selamat Datang ke Chef Apache Deployment

Langkah 6: Csebutkan Resipi dengan templat ini.

Pergi ke direktori Resipi.

Laksanakan t dia:

cd / root / chef-repo / cookbooks / httpd_deploy / resipi

Sekarang edit fail default.rb dengan menggunakan mana-mana editor yang anda mahukan. Saya akan menggunakan editor vim.

Laksanakan ini:

vim lalai.rb

Di sini tambahkan perkara berikut:

pakej 'perkhidmatan httpd' httpd 'melakukan tindakan [: aktifkan,: mula] templat akhir' /var/www/html/index.html 'do source' index.html.erb 'end

Sekarang saya akan kembali ke folder chef-repo saya dan menjalankan / menguji resipi saya di Workstation saya.

Laksanakan ini:

cd / root / chef-repo chef-client --local-mode - jalankan 'resipi [httpd_deploy]'

Menurut Resipi saya, Apache dipasang di Workstation saya, perkhidmatan sedang dimulakan dan diaktifkan semasa boot. Fail templat juga telah dibuat pada root dokumen lalai saya.

Sekarang saya telah menguji Workstation saya. Sudah tiba masanya untuk menyediakan Pelayan Chef.

Langkah 7: Sediakan Pelayan Chef

Saya akan menggunakan versi Chef Server yang dihoskan di cloud tetapi anda juga boleh menggunakan mesin fizikal. Chef-Server ini hadir di mengurus.chef.io

Di sini buat akaun jika anda tidak mempunyai akaun. Setelah anda membuat akaun, log masuk dengan kelayakan masuk anda.

Beginilah rupa Chef Server.

Sekiranya anda masuk untuk pertama kalinya, perkara pertama yang akan anda lakukan ialah mewujudkan organisasi. Organisasi pada dasarnya adalah sekumpulan Mesin yang akan anda uruskan dengan Chef Server.

susun atur c ++ menaik

Pertama, saya akan pergi ke tab pentadbiran. Di sana, saya telah membuat organisasi bernama edu. Oleh itu, saya perlu memuat turun starter kit di Workstation saya. Kit pemula ini akan membantu anda untuk mendorong fail dari Workstation ke Chef Server. Klik pada ikon tetapan di sebelah kanan dan klik pada Starter Kit.

Apabila anda mengklik di sana anda akan mendapat pilihan untuk memuat turun Starter Kit. Cukup klik untuk memuat turun fail zip Starter Kit.

Pindahkan fail ini ke direktori root anda.Sekarang unzip fail zip ini dengan menggunakan arahan unzip di terminal anda. Anda akan melihat bahawa ia termasuk direktori yang disebut chef-repo.

Laksanakan ini:

unzip chef-starter.zip

Sekarang pindahkan kit pemula ini ke direktori buku masakan di direktori chef-repo.

Laksanakan ini:

mv starter / root / chef-repo / buku masakan

Chef Cookbooks terdapat di Cookbook Super Market, kita boleh pergi ke Chef SuperMarket. Muat turun Buku Masakan yang diperlukan dari pasar raya.chef.io . Saya memuat turun salah satu Buku Cook untuk memasang Apache dari sana.

Laksanakan e t h adalah:

muat turun laman web buku masak pisau cd chef-repo learn_chef_httpd

Terdapat bola Tar yang dimuat turun untuk Apache Cookbook. Sekarang, kita perlu mengekstrak kandungan dari fail Tar yang dimuat turun ini. Untuk itu, saya akan menggunakan perintah tar.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

Semua fail yang diperlukan dibuat secara automatik di bawah Buku Masak ini. Tidak perlu melakukan pengubahsuaian. Mari lihat perihal Resipi di dalam folder resipi saya.

Laksanakan t h adalah :

cd / root / chef-repo / learn_chef_httpd / resepi cat default.rb

Sekarang, saya hanya akan memuat naik buku masakan ini ke Pelayan Chef saya kerana ia kelihatan sempurna untuk saya.

Langkah 8: Muat naik Buku Masak ke Pelayan Chef.

Untuk memuat naik Buku Masak Apache yang telah saya muat turun, pindahkan fail Learn_chef_httpd ini ke folder Cookbooks di chef-repo. Kemudian ubah direktori anda ke buku masakan.

Laksanakan t h adalah :

mv / root / chef-repo / learn_chef_httpd / root / chef-repo / buku masakan

Sekarang beralih ke direktori buku masakan ini.

Laksanakan ini:

buku masakan cd

Sekarang di direktori ini, jalankan perintah di bawah ini untuk memuat naik Apache Cookboountuk:

Cth ute t h adalah:

buku masak pisau muat naik Learn_chef_httpd

Sahkan Buku Masak dari konsol Pengurusan Pelayan Chef. Di bahagian dasar, anda akan menemui Buku Masak yang telah anda muat naik. Rujuk tangkapan skrin di bawah:

Sekarang langkah terakhir kami adalah menambahkan Chef Node. Saya telah menyediakan Workstation, Chef Server dan sekarang saya perlu menambahkan Pelanggan saya ke Chef Server untuk automasi.

Langkah 9: Menambah Nod Chef ke Pelayan Chef.

Untuk tujuan demonstrasi saya akan menggunakan satu mesin CentOS sebagai Chef Node. Terdapat beratus-ratus Nod yang disambungkan ke satu Chef Server. Warna terminal mesin Node saya berbeza dari Workstation sehingga anda dapat membezakan antara keduanya.

Saya hanya memerlukan alamat IP Node saya untuk itu saya akan melaksanakan perintah di bawah di Node machin sayaadalah.

Cth awak t adalah t h adalah:

ifconfig

Saya akan menambahkan Nef Chef saya ke Pelayan dengan melaksanakan perintah Knife Bootstrap di mana saya akan menentukan alamat IP The Chef Node dan namanya. Jalankan perintah yang ditunjukkan belodalam:

Cth ute t h adalah:

tali butang pisau 192.168.56.102 --ssh-user root --ssh-password edureka --node-name chefNode

Perintah ini juga akan memulakan pemasangan Chef-Client di Chef Node. Anda boleh mengesahkannya dari CLI di Workstation menggunakan perintah pisau, seperti yang ditunjukkan belodalam:

Cth ute t h adalah:

Senarai nod pisau

Anda juga boleh mengesahkan dari Chef Server. Pergi ke tab nod di Konsol Pengurusan Pelayan anda, di sini anda akan melihat bahawa nod yang telah anda tambahkan ada. Rujuk tangkapan skrin di bawah.

Langkah 10: Urus Senarai Jalankan Node

Mari lihat bagaimana kita dapat menambahkan Buku Masak ke Node dan menguruskan senarai Jalankannya dari Pelayan Chef. Seperti yang anda lihat dalam tangkapan skrin di bawah, klik tab Tindakan dan pilih pilihan Edit Jalankan senarai untuk menguruskan senarai Jalankan.

Dalam Resipi yang Ada, anda dapat melihat resipi Learn_chef_httpd kami, anda boleh menyeretnya dari pakej yang tersedia ke Daftar Senarai semasa dan menyimpan senarai Jalankan.

Sekarang log masuk ke Node anda dan jalankan chef-client untuk menjalankan Run List.

Cth ute t h adalah:

ketua pelanggan

Saya harap anda menikmati Tutorial Chef ini dan mengetahui bagaimana Chef dapat digunakan untuk mengkonfigurasi ratusan Node. Chef memainkan peranan penting dalam banyak organisasi untuk mencapai DevOps. Dengan Chef organisasi mengeluarkan aplikasi dengan lebih kerap dan reliabgelas.

Sekiranya anda menjumpai blog ini di “ Tutorial Chef 'Relevan, lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kursus Latihan Persijilan Edureka DevOps membantu pelajar memperoleh kepakaran dalam pelbagai proses dan alat DevOps seperti Boneka, Chef, Jenkins, Nagios dan GIT untuk mengautomasikan beberapa langkah dalam SDLC.