

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Langkah 15: Perbarui Buku Masak untuk Menggunakan Logika Bersyarat
<a name="gettingstarted-cookbooks-conditional-logic"></a>

**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](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Sekarang perbarui buku masak Anda dengan menambahkan resep yang menggunakan *logika bersyarat*, teknik yang menjalankan kode hanya jika kondisi tertentu terpenuhi. Untuk informasi lebih lanjut, buka [Pernyataan if dan Pernyataan](https://docs.chef.io/dsl_recipe.html#if-statements) [kasus](https://docs.chef.io/dsl_recipe.html#case-statements).

Resep ini melakukan dua hal berdasarkan konten kantong data: menampilkan pesan di log yang mengidentifikasi sistem operasi tempat instance berjalan dan, hanya jika sistem operasinya Linux, menginstal paket dengan menggunakan manajer paket yang benar untuk distribusi Linux yang diberikan. Paket ini diberi nama pohon; ini adalah aplikasi sederhana untuk memvisualisasikan daftar direktori.

**Untuk memperbarui buku masak pada instance dan menjalankan resep baru**

1. Di workstation lokal Anda, di `recipes` subdirektori di`opsworks_cookbook_demo directory`, buat file bernama `conditional_logic.rb` yang berisi kode berikut:

   ```
   instance = search("aws_opsworks_instance").first
   os = instance["os"]
   
   if os == "Red Hat Enterprise Linux 7"
     Chef::Log.info("********** Operating system is Red Hat Enterprise Linux. **********")
   elsif os == "Ubuntu 14.04 LTS" || os == "Ubuntu 16.04 LTS" || os == "Ubuntu 18.04 LTS"
     Chef::Log.info("********** Operating system is Ubuntu. **********") 
   elsif os == "Microsoft Windows Server 2012 R2 Base"
     Chef::Log.info("********** Operating system is Windows. **********")
   elsif os == "Amazon Linux 2015.03" || os == "Amazon Linux 2015.09" || os == "Amazon Linux 2016.03" || os == "Amazon Linux 2016.09" || os == "Amazon Linux 2017.03" || os == "Amazon Linux 2017.09" || os == "Amazon Linux 2018.03" || os == "Amazon Linux 2"
     Chef::Log.info("********** Operating system is Amazon Linux. **********")
   elsif os == "CentOS Linux 7"
     Chef::Log.info("********** Operating system is CentOS 7. **********")
   else
     Chef::Log.info("********** Cannot determine operating system. **********")
   end
   
   case os
   when "Ubuntu 14.04 LTS", "Ubuntu 16.04 LTS", "Ubuntu 18.04 LTS"
     apt_package "Install a package with apt-get" do
       package_name "tree"
     end
   when "Amazon Linux 2015.03", "Amazon Linux 2015.09", "Amazon Linux 2016.03", "Amazon Linux 2016.09", "Amazon Linux 2017.03", "Amazon Linux 2017.09", "Amazon Linux 2018.03", "Amazon Linux 2", "Red Hat Enterprise Linux 7", "CentOS Linux 7"
     yum_package "Install a package with yum" do
       package_name "tree"
     end
   else
     Chef::Log.info("********** Cannot determine operating system type, or operating system is not Linux. Package not installed. **********")
   end
   ```

1. Di terminal atau command prompt, gunakan **tar** perintah buat versi baru `opsworks_cookbook_demo.tar.gz` file, yang berisi `opsworks_cookbook_demo` direktori dan isinya yang diperbarui.

1. Unggah `opsworks_cookbook_demo.tar.gz` file yang diperbarui ke bucket S3 Anda.

1. Ikuti prosedur [Langkah 5: Perbarui Buku Masak pada Instance dan Jalankan Resepnya](gettingstarted-cookbooks-copy-cookbook.md) untuk memperbarui buku masak pada instance dan menjalankan resepnya. Dalam prosedur “Menjalankan resep”, **agar Resep dijalankan**, ketik**opsworks\$1cookbook\$1demo::conditional\$1logic**. 

**Untuk menguji resepnya**

1. ****Dengan **perintah Running execute\$1recipes** halaman ditampilkan dari prosedur sebelumnya, untuk **cookbooks-demo1**, untuk Log, pilih show.**** Halaman log **execute\$1recipes ditampilkan**.

1. Gulir ke bawah melalui log dan temukan entri yang terlihat mirip dengan yang berikut ini:

   ```
   [2015-11-16T19:59:05+00:00] INFO: ********** Operating system is Amazon Linux. **********
   ```

   Karena sistem operasi instans adalah Amazon Linux 2016.09, hanya entri sebelumnya (dari lima entri yang mungkin dalam kode resep) yang akan ditampilkan di log. 

1. Jika sistem operasinya Linux, resepnya menginstal paket pohon. Untuk melihat visualisasi isi direktori, ketik **tree** prompt perintah dari direktori yang diinginkan atau dengan jalur direktori yang diinginkan (misalnya,`tree /var/chef/runs`).

Pada [langkah berikutnya](gettingstarted-cookbooks-community-cookbooks.md), Anda akan memperbarui buku masak untuk menggunakan fungsionalitas dari buku masak eksternal yang disediakan oleh komunitas Chef.