Ketergantungan Buku Masak Kemasan Secara Lokal - AWS OpsWorks

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

Ketergantungan Buku Masak Kemasan Secara Lokal

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.

Anda dapat menggunakan Berkshelf untuk mengemas dependensi buku masak Anda secara lokal, mengunggah paket ke Amazon S3, dan memodifikasi tumpukan Anda untuk menggunakan paket di Amazon S3 sebagai sumber buku masak. Konten yang dikirimkan ke bucket Amazon S3 mungkin berisi konten pelanggan. Untuk informasi selengkapnya tentang menghapus data sensitif, lihat Bagaimana Cara Mengosongkan Bucket S3? atau Bagaimana Saya Menghapus Bucket S3? .

Panduan berikut menjelaskan cara mengemas buku masak Anda dan dependensinya ke dalam file.zip, dan kemudian menggunakan file.zip sebagai sumber buku masak Anda untuk instance Linux di Stacks. AWS OpsWorks Panduan pertama menjelaskan cara mengemas satu buku masak. Panduan kedua menjelaskan cara mengemas beberapa buku masak.

Sebelum Anda mulai, instal Chef Development Kit (juga dikenal sebagai Chef DK), yang merupakan bermacam-macam alat yang dibangun oleh komunitas Chef. Anda akan membutuhkan ini untuk menggunakan alat chef baris perintah.

Dependensi Pengemasan Lokal di Chef 12

Di Chef 12 Linux, Berkshelf tidak lagi diinstal secara default pada instance stack. Kami menyarankan Anda menginstal dan menggunakan Berkshelf pada komputer pengembangan lokal untuk mengemas dependensi buku masak Anda secara lokal. Unggah paket Anda, dengan dependensi yang disertakan, ke Amazon S3. Terakhir, ubah tumpukan Chef 12 Linux Anda untuk menggunakan paket yang diunggah sebagai sumber buku masak. Waspadai perbedaan berikut saat Anda mengemas buku masak di Chef 12.

  1. Di komputer lokal, buat buku masak dengan menjalankan alat baris chef perintah.

    chef generate cookbook "server-app"

    Perintah ini membuat buku masak, Berksfile, metadata.rb file, dan direktori resep, dan menempatkannya di folder yang memiliki nama yang sama dengan buku masak. Contoh berikut menunjukkan struktur dari apa yang dibuat.

    server-app <-- the cookbook you've just created └── Berksfile ├── metadata.rb └── recipes
  2. Dalam editor teks, edit Berksfile untuk menunjuk ke buku masak di mana buku masak akan server-app bergantung. Dalam contoh kami, kami server-app ingin bergantung pada javabuku masak dari Chef Supermarket. Kami menentukan versi 1.50.0 atau versi minor yang lebih baru, tetapi Anda dapat memasukkan versi yang diterbitkan dalam tanda kutip tunggal. Simpan perubahan Anda dan tutup file.

    source 'https://supermarket.chef.io' cookbook 'java', '~> 1.50.0'
  3. Edit metadata.rb file untuk menambahkan ketergantungan. Simpan perubahan Anda dan tutup file.

    depends 'java' , '~> 1.50.0'
  4. Ubah ke direktori server-app buku masak yang dibuat Chef untuk Anda, lalu jalankan package perintah untuk membuat tar file buku masak. Jika Anda mengemas beberapa buku masak, Anda ingin menjalankan perintah ini di direktori root tempat semua buku masak disimpan. Untuk mengemas satu buku masak, jalankan perintah ini di tingkat direktori buku masak. Dalam contoh ini, kita menjalankan perintah ini di server-app direktori.

    berks package cookbooks.tar.gz

    Output-nya menyerupai yang berikut. tar.gzFile dibuat di direktori lokal Anda.

    Cookbook(s) packaged to /Users/username/tmp/berks/cookbooks.tar.gz
  5. Di AWS CLI, unggah paket yang baru saja Anda buat ke Amazon S3. Catat URL baru paket buku masak setelah Anda mengunggahnya ke S3; Anda memerlukan URL ini untuk pengaturan tumpukan Anda.

    aws s3 cp cookbooks.tar.gz s3://bucket-name/

    Output-nya menyerupai yang berikut.

    upload: ./cookbooks.tar.gz to s3://bucket-name/cookbooks.tar.gz
  6. Di AWS OpsWorks Stacks, ubah tumpukan Anda untuk menggunakan paket yang Anda unggah sebagai sumber buku masak.

    1. Setel pengaturan Gunakan buku masak Chef kustom ke Ya.

    2. Setel jenis Repositori ke Arsip S3.

    3. Di URL Repositori, tempel URL paket buku masak yang Anda unggah di langkah 5.

    Simpan perubahan tumpukan Anda.

Ketergantungan Kemasan Secara Lokal untuk Satu Buku Masak

  1. Di komputer lokal, buat buku masak dengan menggunakan alat baris perintah koki:

    chef generate cookbook "server-app"

    Perintah ini membuat buku masak dan Berksfile, dan menempatkannya di folder yang memiliki nama yang sama dengan buku masak.

  2. Ubah ke direktori buku masak yang dibuat Chef untuk Anda, dan kemudian paket semuanya dengan menjalankan perintah berikut:

    berks package cookbooks.tar.gz

    Keluaran terlihat seperti ini:

    Cookbook(s) packaged to /Users/username/tmp/berks/cookbooks.tar.gz
  3. Di AWS CLI, unggah paket yang baru saja Anda buat ke Amazon S3:

    aws s3 cp cookbooks.tar.gz s3://bucket-name/

    Keluaran terlihat seperti ini:

    upload: ./cookbooks.tar.gz to s3://bucket-name/cookbooks.tar.gz
  4. Di AWS OpsWorks Stacks, ubah tumpukan Anda untuk menggunakan paket yang Anda unggah sebagai sumber buku masak.

Dependensi Kemasan Secara Lokal untuk Beberapa Buku Masak

Contoh ini membuat dua buku masak dan mengemas dependensi untuk mereka.

  1. Di komputer lokal, jalankan chef perintah berikut untuk menghasilkan dua buku masak:

    chef generate cookbook "server-app" chef generate cookbook "server-utils"

    Dalam contoh ini, buku masak server-app melakukan konfigurasi Java, jadi kita perlu menambahkan ketergantungan pada Java.

  2. Edit server-app/metadata.rb untuk menambahkan ketergantungan pada buku masak Java komunitas:

    maintainer "The Authors" maintainer_email "you@example.com" license "all_rights" description "Installs/Configures server-app" long_description "Installs/Configures server-app" version "0.1.0" depends "java"
  3. Beri tahu Berkshelf apa yang harus dikemas dengan mengedit file Berksfile di direktori root buku masak sebagai berikut:

    source "https://supermarket.chef.io" cookbook "server-app", path: "./server-app" cookbook "server-utils", path: "./server-utils"

    Struktur file Anda sekarang terlihat seperti ini:

    .. └── Berksfile ├── server-app └── server-utils
  4. Terakhir, buat paket zip, unggah ke Amazon S3, dan ubah tumpukan AWS OpsWorks Stacks Anda untuk menggunakan sumber buku masak baru. Untuk melakukan ini, ikuti langkah 2 hingga 4 inKetergantungan Kemasan Secara Lokal untuk Satu Buku Masak.

Sumber daya tambahan

Untuk informasi lebih lanjut tentang dependensi buku masak kemasan, lihat berikut ini.