Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Resep
penting
AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di AWS re:Post
Resep adalah aplikasi Ruby yang mendefinisikan konfigurasi sistem. Mereka menginstal paket, membuat file konfigurasi dari template, menjalankan perintah shell, membuat file dan direktori, dan sebagainya. Anda biasanya memiliki AWS OpsWorks Stacks mengeksekusi resep secara otomatis ketika peristiwa siklus hidup terjadi pada instance tetapi Anda juga dapat menjalankannya secara eksplisit kapan saja dengan menggunakan perintah stack Execute Recipes. Untuk informasi lebih lanjut, lihat Tentang Resep
Resep biasanya sebagian besar terdiri dari serangkaian sumber daya, yang masing-masing mewakili keadaan yang diinginkan dari suatu aspek sistem. Setiap sumber daya mencakup seperangkat atribut yang menentukan keadaan yang diinginkan dan menentukan tindakan apa yang harus diambil. Chef mengasosiasikan setiap sumber daya dengan penyedia yang sesuai yang melakukan tindakan. Untuk informasi selengkapnya, lihat Referensi Sumber Daya dan Penyedia
package
Sumber daya membantu Anda mengelola paket perangkat lunak pada instance Linux. Contoh berikut menginstal paket Apache.
... package 'apache2' do case node[:platform] when 'centos','redhat','fedora','amazon' package_name 'httpd' when 'debian','ubuntu' package_name 'apache2' end action :install end ...
Chef menggunakan penyedia paket yang sesuai untuk platform. Atribut sumber daya seringkali hanya diberi nilai, tetapi Anda dapat menggunakan operasi logis Ruby untuk melakukan tugas bersyarat. Contoh menggunakan case
operator, yang digunakan node[:platform]
untuk mengidentifikasi sistem operasi instance dan menetapkan package_name
atribut yang sesuai. Anda dapat menyisipkan atribut ke dalam resep dengan menggunakan sintaks simpul Chef standar dan Chef menggantinya dengan nilai terkait. Anda dapat menggunakan atribut apa pun di objek node, bukan hanya atribut buku masak Anda.
Setelah menentukan nama paket yang sesuai, segmen kode diakhiri dengan install
tindakan, yang menginstal paket. Tindakan lain untuk sumber daya ini termasuk upgrade
danremove
. Untuk informasi lebih lanjut, lihat paket
Seringkali berguna untuk memecah tugas instalasi dan konfigurasi yang kompleks menjadi satu atau lebih subtugas, masing-masing diimplementasikan sebagai resep terpisah, dan meminta resep utama Anda menjalankannya pada waktu yang tepat. Contoh berikut menunjukkan baris kode yang mengikuti contoh sebelumnya:
include_recipe 'apache2::service'
Untuk memiliki resep mengeksekusi resep anak, gunakan include_recipe
kata kunci, diikuti dengan nama resep. Resep diidentifikasi dengan menggunakan
sintaks Chef standar, di mana CookbookName
::RecipeName
menghilangkan ekstensi. RecipeName
.rb
catatan
Sebuah include_recipe
pernyataan secara efektif mengeksekusi resep pada saat itu dalam resep utama. Namun, apa yang sebenarnya terjadi adalah bahwa Chef mengganti setiap include_recipe
pernyataan dengan kode resep yang ditentukan sebelum mengeksekusi resep utama.
directory
Sumber daya mewakili direktori, seperti direktori yang berisi file paket. default.rb
Sumber daya berikut membuat direktori log Linux.
directory node[:apache][:log_dir] do mode 0755 action :create end
Direktori log didefinisikan dalam salah satu file atribut buku masak. Sumber daya menentukan mode direktori sebagai 0755, dan menggunakan create
tindakan untuk membuat direktori. Untuk informasi selengkapnya, lihat direktori
Sumber execute
daya mewakili perintah, seperti perintah shell atau skrip. Contoh berikut menghasilkan file module.load.
execute 'generate-module-list' do if node[:kernel][:machine] == 'x86_64' libdir = 'lib64' else libdir = 'lib' end command "/usr/local/bin/apache2_module_conf_generate.pl /usr/#{libdir}/httpd/modules /etc/httpd/mods-available" action :run end
Sumber daya pertama-tama menentukan CPU jenisnya. [:kernel][:machine]
adalah salah satu atribut otomatis yang dihasilkan Chef untuk mewakili berbagai properti sistem, CPU tipe dalam kasus ini. Kemudian menentukan perintah, skrip Perl dan menggunakan run
tindakan untuk menjalankan skrip, yang menghasilkan file.load modul. Untuk informasi selengkapnya, lihat mengeksekusi
template
Sumber daya mewakili file — biasanya file konfigurasi — yang akan dihasilkan dari salah satu file template buku masak. Contoh berikut membuat file httpd.conf
konfigurasi dari apache2.conf.erb
template yang dibahas diTemplate.
template 'apache2.conf' do case node[:platform] when 'centos','redhat','fedora','amazon' path "#{node[:apache][:dir]}/conf/httpd.conf" when 'debian','ubuntu' path "#{node[:apache][:dir]}/apache2.conf" end source 'apache2.conf.erb' owner 'root' group 'root' mode 0644 notifies :restart, resources(:service => 'apache2') end
Sumber daya menentukan nama dan lokasi file yang dihasilkan berdasarkan sistem operasi instance. Kemudian menentukan apache2.conf.erb
sebagai template yang akan digunakan untuk menghasilkan file dan menetapkan pemilik, grup, dan mode file. Ini menjalankan notify
tindakan untuk memberi tahu service
sumber daya yang mewakili server Apache untuk me-restart server. Untuk informasi lebih lanjut, lihat template