

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

# Contoh 1: Menginstal Paket
<a name="cookbooks-101-basics-packages"></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.

Instalasi paket adalah salah satu penggunaan resep yang lebih umum dan bisa sangat sederhana, tergantung pada paketnya. Misalnya, resep berikut menginstal Git pada sistem Linux.

```
package 'git' do
  action :install
end
```

Sumber [`package`daya](https://docs.chef.io/chef/resources.html#package) menangani instalasi paket. Untuk contoh ini, Anda tidak perlu menentukan atribut apa pun. Nama sumber daya adalah nilai default untuk `package_name` atribut, yang mengidentifikasi paket. `install`Tindakan mengarahkan penyedia untuk menginstal paket. Anda dapat membuat kode lebih sederhana dengan melewatkan`install`; itu adalah tindakan default `package` sumber daya. Ketika Anda menjalankan resep, Chef menggunakan penyedia yang sesuai untuk menginstal paket. Pada sistem Ubuntu yang akan Anda gunakan sebagai contoh, penyedia menginstal Git dengan menelepon`apt-get`.

**catatan**  
Menginstal perangkat lunak pada sistem Windows memerlukan prosedur yang agak berbeda. Untuk informasi selengkapnya, lihat [Menginstal Perangkat Lunak Windows](cookbooks-101-opsworks-install-software.md).

Untuk menggunakan Test Kitchen untuk menjalankan resep ini di Vagrant, Anda harus terlebih dahulu menyiapkan buku masak dan menginisialisasi dan mengkonfigurasi Test Kitchen. Berikut ini adalah untuk sistem Linux, tetapi prosedurnya pada dasarnya serupa untuk sistem Windows dan Macintosh. Mulailah dengan membuka jendela Terminal; semua contoh dalam Bab ini menggunakan alat baris perintah.

**Untuk menyiapkan buku masak**

1. Di direktori home Anda, buat subdirektori bernama`opsworks_cookbooks`, yang akan berisi semua buku masak untuk chapter ini. Kemudian buat subdirektori untuk buku masak ini bernama `installpkg` dan arahkan ke sana.

1. Di`installpkg`, buat file bernama `metadata.rb` yang berisi kode berikut.

   ```
   name "installpkg"
   version "0.1.0"
   ```

   Untuk mempermudah, contoh dalam Bab ini hanya menentukan nama buku masak dan versi, tetapi `metadata.rb` dapat berisi berbagai metadata buku masak. Untuk informasi lebih lanjut, lihat [Tentang Metadata Buku Masak](http://docs.chef.io/cookbook_repo.html#about-cookbook-metadata).
**catatan**  
Pastikan untuk membuat `metadata.rb` sebelum Anda menginisialisasi Test Kitchen; itu menggunakan data untuk membuat file konfigurasi default.

1. Di`installpkg`, jalankan`kitchen init`, yang menginisialisasi Test Kitchen dan menginstal driver Vagrant default.

1. `kitchen init`Perintah membuat file konfigurasi YAMB dalam `installpkg` nama`.kitchen.yml`. Buka file dalam editor teks favorit Anda. `.kitchen.yml`File tersebut menyertakan `platforms` bagian yang menentukan sistem mana yang akan menjalankan resep. Test Kitchen membuat instance dan menjalankan resep yang ditentukan pada setiap platform. 
**catatan**  
Secara default, Test Kitchen menjalankan resep satu platform pada satu waktu. Jika Anda menambahkan `-p` argumen ke perintah apa pun yang membuat instance, Test Kitchen akan menjalankan resep di setiap platform, secara paralel.

   Satu platform sudah cukup untuk contoh ini, jadi edit `.kitchen.yml` untuk menghapus `centos-6.4` platform. `.kitchen.yml`File Anda sekarang akan terlihat seperti ini:

   ```
   ---
   driver:
     name: vagrant
   
   provisioner:
     name: chef_solo
   
   platforms:
     - name: ubuntu-12.04
   
   suites:
     - name: default
       run_list:
         - recipe[installpkg::default]
       attributes:
   ```

   Test Kitchen hanya menjalankan resep-resep yang ada dalam daftar `.kitchen.yml` run. Anda mengidentifikasi resep dengan menggunakan `[cookbook_name::recipe_name]` format, di mana *recipe\$1name* menghilangkan `.rb` ekstensi. Awalnya, daftar `.kitchen.yml` run berisi resep default buku masak,`installpkg::default`. Itulah resep yang akan Anda terapkan, jadi Anda tidak perlu memodifikasi daftar run.

1. Buat subdirektori `installpkg` bernama`recipes`.

   Jika buku masak berisi resep—kebanyakan melakukannya—mereka harus ada di subdirektori. `recipes`

Anda sekarang dapat menambahkan resep ke buku masak dan menggunakan Test Kitchen untuk menjalankannya pada sebuah instance.

**Untuk menjalankan resep**

1. Buat file bernama `default.rb` yang berisi kode contoh instalasi Git dari awal bagian dan simpan ke `recipes` subdirektori.

1. Di `installpkg` direktori, jalankan`kitchen converge`. Perintah ini memulai instance Ubuntu baru di Vagrant, menyalin buku masak Anda ke instance, dan memulai Chef run untuk mengeksekusi resep dalam daftar run. `.kitchen.yml`

1. Untuk memverifikasi bahwa resep berhasil, jalankan`kitchen login`, yang membuka koneksi SSH ke instance. Kemudian jalankan `git --version` untuk memverifikasi bahwa Git berhasil diinstal. Untuk kembali ke workstation Anda, jalankan`exit`.

1. Setelah selesai, jalankan `kitchen destroy` untuk mematikan instance. Contoh selanjutnya menggunakan buku masak yang berbeda.

Contoh ini adalah cara yang baik untuk memulai, tetapi sangat sederhana. Paket lain bisa lebih rumit untuk diinstal; Anda mungkin perlu melakukan salah satu atau semua hal berikut:
+ Buat dan konfigurasikan pengguna.
+ Buat satu atau lebih direktori untuk data, log, dan sebagainya.
+ Instal satu atau lebih file konfigurasi.
+ Tentukan nama paket atau nilai atribut yang berbeda untuk sistem operasi yang berbeda.
+ Mulai layanan dan kemudian restart sesuai kebutuhan.

Contoh berikut menjelaskan cara mengatasi masalah ini, bersama dengan beberapa operasi berguna lainnya.