Contoh 7: Menjalankan Perintah dan Skrip - AWS OpsWorks

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

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.

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 scriptdaya menjalankan satu atau lebih perintah. Ini mendukung penerjemah perintah csh, bash, Perl, Python, dan Ruby, sehingga dapat digunakan pada sistem Linux atau Windows selama mereka memiliki interpreter yang sesuai diinstal. Topik ini menunjukkan cara menjalankan perintah bash sederhana pada instance Linux. Chef juga mendukung powershell_script dan sumber daya batch untuk menjalankan skrip di Windows. Untuk informasi selengkapnya, lihat Menjalankan PowerShell Skrip Windows.

Untuk memulai
  1. Di dalam opsworks_cookbooks direktori, buat direktori bernama script dan navigasikan ke sana.

  2. Tambahkan metadata.rb file script dengan konten berikut.

    name "script" version "0.1.0"
  3. Inisialisasi dan konfigurasikan Test Kitchen, seperti yang dijelaskan dalamContoh 1: Menginstal Paket, dan hapus CentOS dari platforms daftar.

  4. Di dalamscript, 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 bashsumber daya untuk menjalankan skrip bash sederhana.

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 di code blok.

    Contoh ini memiliki satu perintahtouch somefile, tetapi sebuah code blok dapat berisi beberapa perintah.

  • userAtribut menentukan pengguna yang mengeksekusi perintah.

  • cwdAtribut 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
  1. Buat default.rb file yang berisi kode contoh sebelumnya dan simpan ke. recipes

  2. Jalankankitchen converge, lalu masuk ke instance untuk memverifikasi bahwa file tersebut masuk/tmp.

Menjalankan Skrip

scriptSumber daya nyaman, terutama jika Anda hanya perlu menjalankan satu atau dua perintah, tetapi seringkali lebih baik untuk menyimpan skrip dalam file dan mengeksekusi file. executeSumber daya menjalankan file yang dapat dieksekusi tertentu, termasuk file skrip, di Linux atau Windows. Topik ini memodifikasi 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
  1. Tambahkan files subdirektori ke script dan default subdirektori ke. files

  2. 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_fileSumber daya menyalin file skrip ke /tmp dan mengatur mode untuk membuat file dapat dieksekusi. Sumber execute daya kemudian mengeksekusi file sebagai berikut:

  • userAtribut menentukan pengguna perintah (rootdalam contoh ini).

  • cwdAtribut menentukan direktori kerja (/tmpdalam contoh ini).

  • commandAtribut menentukan skrip yang akan dieksekusi (touchfiledalam contoh ini), yang terletak di direktori kerja.

Untuk menjalankan resep
  1. Ganti kode recipes/default.rb dengan contoh sebelumnya.

  2. Jalankankitchen 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.