Resep - AWS OpsWorks

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 Support Tim di AWS re:Post atau melalui AWS Dukungan Premium.

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.

packageSumber 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 CookbookName::RecipeName sintaks Chef standar, di mana RecipeName menghilangkan ekstensi. .rb

catatan

Sebuah include_recipe pernyataan secara efektif mengeksekusi resep pada saat itu dalam resep utama. Namun, yang sebenarnya terjadi adalah Chef mengganti setiap include_recipe pernyataan dengan kode resep yang ditentukan sebelum mengeksekusi resep utama.

directorySumber daya mewakili direktori, seperti direktori yang berisi file paket. default.rbSumber 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. Anda juga dapat menggunakan sumber daya ini dengan instance Windows.

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 jenis CPU. [:kernel][:machine]adalah salah satu atribut otomatis yang dihasilkan Chef untuk mewakili berbagai properti sistem, tipe CPU 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.

templateSumber 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 selengkapnya, lihat template.