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 Dukungan Tim di AWS re:Post
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 Kitchef
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.
-
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
-
Dalam editor teks, edit Berksfile untuk menunjuk ke buku masak di mana buku masak akan
server-app
bergantung. Dalam contoh kami, kamiserver-app
ingin bergantung padajava
buku 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'
-
Edit
metadata.rb
file untuk menambahkan ketergantungan. Simpan perubahan Anda dan tutup file.depends 'java' , '~> 1.50.0'
-
Ubah ke direktori
server-app
buku masak yang dibuat Chef untuk Anda, lalu jalankanpackage
perintah untuk membuattar
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 diserver-app
direktori.berks package cookbooks.tar.gz
Output-nya menyerupai yang berikut.
tar.gz
File dibuat di direktori lokal Anda.Cookbook(s) packaged to /Users/username/tmp/berks/cookbooks.tar.gz
-
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
-
Di AWS OpsWorks Stacks, ubah tumpukan Anda untuk menggunakan paket yang Anda unggah sebagai sumber buku masak.
-
Setel pengaturan Gunakan buku masak Chef kustom ke Ya.
-
Setel jenis Repositori ke Arsip S3.
-
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
-
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.
-
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
-
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
-
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.
-
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.
-
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"
-
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
-
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.
-
Cara Mengemas Dependensi Cookbook Secara Lokal dengan Berkshelf
di Blog AWS DevOps -
Linux Chef 12 dengan Berkshelf
di forum AWS OpsWorks -
Berkshelf di Chef 12
di forum AWS OpsWorks -
Menginstal Buku Masak Kustom dalam panduan ini
-
Repositori Buku Masak dalam panduan ini