Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh 7: Menjalankan Perintah dan Skrip
penting
Bagian AWS OpsWorks Stacks layanan 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: posting
Sumber daya koki dapat menangani berbagai macam tugas pada sebuah instance, tetapi terkadang lebih baik menggunakan perintah shell atau skrip. Misalnya, Anda mungkin sudah memiliki skrip yang Anda gunakan untuk menyelesaikan tugas tertentu, dan akan lebih mudah untuk terus menggunakannya daripada menerapkan kode baru. Bagian ini menunjukkan cara menjalankan perintah atau skrip pada sebuah instance.
Menjalankan Perintah
Sumber script
Untuk memulai
-
Di dalam
opsworks_cookbooks
direktori, buat direktori bernamascript
dan navigasikan ke sana. -
Tambahkan
metadata.rb
filescript
dengan konten berikut.name "script" version "0.1.0"
-
Inisialisasi dan konfigurasikan Test Kitchen, seperti yang dijelaskan dalamContoh 1: Menginstal Paket, dan hapus CentOS dari
platforms
daftar. -
Di dalam
script
, buat direktori bernamarecipes
.
Anda dapat menjalankan perintah dengan menggunakan script
sumber daya itu sendiri, tetapi Chef juga mendukung satu set versi khusus penerjemah perintah dari sumber daya, yang dinamai untuk penerjemah. Resep berikut menggunakan bash
bash "install_something" do user "root" cwd "/tmp" code <<-EOH touch somefile EOH not_if do File.exists?("/tmp/somefile") end end
Sumber bash
daya dikonfigurasi sebagai berikut.
-
Ini menggunakan tindakan default,
run
, yang menjalankan perintah dicode
blok.Contoh ini memiliki satu perintah
touch somefile
, tetapicode
blok dapat berisi beberapa perintah. -
user
Atribut menentukan pengguna yang mengeksekusi perintah. -
cwd
Atribut menentukan direktori kerja.Untuk contoh ini,
touch
buat file di/tmp
direktori. -
Atribut
not_if
guard mengarahkan sumber daya untuk tidak mengambil tindakan jika file sudah ada.
Untuk menjalankan resep
-
Buat
default.rb
file yang berisi kode contoh sebelumnya dan simpan ke.recipes
-
Jalankan
kitchen converge
, lalu masuk ke instance untuk memverifikasi bahwa file tersebut masuk/tmp
.
Menjalankan Skrip
script
Sumber daya nyaman, terutama jika Anda hanya perlu menjalankan satu atau dua perintah, tetapi seringkali lebih baik untuk menyimpan skrip dalam file dan mengeksekusi file. execute
script
buku masak dari contoh sebelumnya untuk digunakan execute
untuk menjalankan skrip shell sederhana. Anda dapat dengan mudah memperluas contoh ke skrip yang lebih kompleks, atau jenis file yang dapat dieksekusi lainnya.
Untuk mengatur file skrip
-
Tambahkan
files
subdirektori kescript
dandefault
subdirektori ke.files
-
Buat file bernama
touchfile
yang berisi berikut ini dan tambahkan kefiles/default
. Baris interpreter Bash umum digunakan dalam contoh ini, tetapi gantikan interpreter yang berfungsi untuk lingkungan shell Anda jika perlu.#!/usr/bin/env bash touch somefile
File skrip dapat berisi sejumlah perintah. Untuk kenyamanan, contoh skrip ini hanya memiliki satu
touch
perintah.
Resep berikut mengeksekusi skrip.
cookbook_file "/tmp/touchfile" do source "touchfile" mode 0755 end execute "touchfile" do user "root" cwd "/tmp" command "./touchfile" end
cookbook_file
Sumber daya menyalin file skrip ke /tmp
dan mengatur mode untuk membuat file dapat dieksekusi. Sumber execute
daya kemudian mengeksekusi file sebagai berikut:
-
user
Atribut menentukan pengguna perintah (root
dalam contoh ini). -
cwd
Atribut menentukan direktori kerja (/tmp
dalam contoh ini). -
command
Atribut menentukan skrip yang akan dieksekusi (touchfile
dalam contoh ini), yang terletak di direktori kerja.
Untuk menjalankan resep
-
Ganti kode
recipes/default.rb
dengan contoh sebelumnya. -
Jalankan
kitchen converge
, lalu masuk ke instance untuk memverifikasi bahwa/tmp
sekarang berisi file skrip, dengan mode diatur ke 0755, dansomefile
.
Setelah selesai, jalankan kitchen destroy
untuk mematikan instance. Bagian selanjutnya menggunakan buku masak baru.