Langkah 2.3: Menerapkan Buku Masak Kustom - AWS OpsWorks

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

Langkah 2.3: Menerapkan Buku Masak Kustom

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.

Meskipun tumpukan pada dasarnya adalah wadah untuk instance, Anda tidak menambahkan instance langsung ke tumpukan. Anda menambahkan satu atau lebih lapisan, yang masing-masing mewakili sekelompok instance terkait, dan kemudian menambahkan instance ke lapisan.

Lapisan pada dasarnya adalah cetak biru yang digunakan AWS OpsWorks Stacks untuk membuat satu set instans Amazon EC2 dengan konfigurasi yang sama. Sebuah instance dimulai dengan versi dasar sistem operasi, dan lapisan instance melakukan berbagai tugas pada instance untuk mengimplementasikan cetak biru itu, yang dapat mencakup:

  • Membuat direktori dan file

  • Mengelola pengguna

  • Menginstal dan mengkonfigurasi perangkat lunak

  • Memulai atau menghentikan server

  • Menyebarkan kode aplikasi dan file terkait.

Lapisan melakukan tugas pada instance dengan menjalankan resep Chef —resep singkatnya. Resep adalah aplikasi Ruby yang menggunakan bahasa khusus domain Chef (DSL) untuk menggambarkan keadaan akhir dari instance. Dengan AWS OpsWorks Stacks, setiap resep biasanya ditetapkan ke salah satu peristiwa siklus hidup layer: Setup, Configuration, Deploy, Undeploy, dan Shutdown. Ketika peristiwa siklus hidup terjadi pada sebuah instance, AWS OpsWorks Stacks menjalankan resep acara untuk melakukan tugas yang sesuai. Misalnya, peristiwa Setup terjadi setelah instance selesai booting. AWS OpsWorks Stacks kemudian menjalankan resep Setup, yang biasanya melakukan tugas-tugas seperti menginstal dan mengkonfigurasi perangkat lunak server dan memulai layanan terkait.

AWS OpsWorks Stacks menyediakan setiap lapisan dengan satu set resep bawaan yang melakukan tugas standar. Anda dapat memperluas fungsionalitas lapisan dengan menerapkan resep khusus untuk melakukan tugas tambahan dan menetapkannya ke peristiwa siklus hidup lapisan. Tumpukan Windows mendukung lapisan khusus, yang memiliki seperangkat resep minimal yang hanya melakukan beberapa tugas dasar. Untuk menambahkan fungsionalitas ke instance Windows Anda, Anda harus menerapkan resep khusus untuk menginstal perangkat lunak, menyebarkan aplikasi, dan sebagainya. Topik ini menjelaskan cara membuat lapisan kustom sederhana untuk mendukung instance IIS.

Pengantar Cepat untuk Buku Masak dan Resep

Sebuah resep mendefinisikan satu atau lebih aspek dari status yang diharapkan suatu instans: direktori apa yang harus dimiliki, paket perangkat lunak apa yang harus diinstal, aplikasi apa yang harus digunakan, dan sebagainya. Resep dikemas dalam buku masak, yang biasanya berisi satu atau lebih resep terkait, ditambah file terkait seperti template untuk membuat file konfigurasi.

Topik ini adalah pengantar resep yang sangat mendasar, cukup untuk menunjukkan kepada Anda bagaimana menerapkan buku masak untuk mendukung lapisan IIS kustom sederhana. Untuk pengenalan buku masak yang lebih umum, lihatBuku Masak dan Resep. Untuk pengantar tutorial terperinci untuk mengimplementasikan buku masak, termasuk beberapa topik khusus Windows, lihat. Buku masak 101

Resep koki secara teknis adalah aplikasi Ruby, tetapi sebagian besar, jika tidak semua, kodenya ada di Chef DSL. DSL sebagian besar terdiri dari sekumpulan sumber daya, yang dapat Anda gunakan untuk secara deklaratif menentukan aspek status instance. Misalnya, directorysumber daya mendefinisikan direktori yang akan ditambahkan ke sistem. Contoh berikut mendefinisikan C:\data direktori dengan hak kontrol penuh milik pengguna tertentu dan tidak mewarisi hak dari direktori induk.

directory 'C:\data' do rights :full_control, 'WORKGROUP\username' inherits false action :create end

Ketika Chef menjalankan resep, ia mengeksekusi setiap sumber daya dengan meneruskan data ke penyedia terkait, objek Ruby yang menangani detail memodifikasi status instance. Dalam hal ini, penyedia membuat direktori baru dengan konfigurasi yang ditentukan.

Buku masak khusus untuk lapisan IIS kustom harus melakukan tugas-tugas berikut:

  • Instal fitur IIS dan mulai layanan.

    Anda biasanya melakukan tugas ini selama penyiapan, tepat setelah instance selesai booting.

  • Menyebarkan aplikasi ke instance, halaman HTML sederhana untuk contoh ini.

    Anda biasanya melakukan tugas ini selama pengaturan. Namun, aplikasi biasanya perlu diperbarui secara berkala, jadi Anda juga perlu menerapkan pembaruan saat instans sedang online.

Anda bisa memiliki satu resep untuk melakukan semua tugas ini. Namun, pendekatan yang lebih disukai adalah memiliki resep terpisah untuk tugas penyiapan dan penerapan. Dengan begitu, Anda dapat menerapkan pembaruan aplikasi kapan saja tanpa juga menjalankan kode penyiapan. Berikut ini menjelaskan cara menyiapkan buku masak untuk mendukung lapisan IIS kustom. Topik selanjutnya akan menunjukkan bagaimana menerapkan resep.

Untuk memulai
  1. Buat direktori bernama iis-cookbook di lokasi yang nyaman di workstation Anda.

  2. Tambahkan metadata.rb file dengan konten berikut keiis-cookbook.

    name "iis-cookbook" version "0.1.0"

    Contoh ini menggunakan minimalmetadata.rb. Untuk informasi selengkapnya tentang bagaimana Anda dapat menggunakan file ini, lihat metadata.rb.

  3. Tambahkan recipes direktori keiis-cookbook.

    Direktori ini, yang harus diberi namarecipes, berisi resep buku masak.

Secara umum, buku masak dapat berisi berbagai direktori lainnya. Misalnya, jika resep menggunakan templat untuk membuat file konfigurasi, templat biasanya masuk ke templates\default direktori. Buku masak untuk contoh ini seluruhnya terdiri dari resep, sehingga tidak memerlukan direktori lain. Juga, contoh ini menggunakan buku masak tunggal, tetapi Anda dapat menggunakan sebanyak yang Anda butuhkan; beberapa buku masak sering lebih disukai untuk proyek yang kompleks. Misalnya, Anda dapat memiliki buku masak terpisah untuk tugas penyiapan dan penerapan. Untuk contoh buku masak lainnya, lihatBuku Masak dan Resep.

Menerapkan Resep untuk Menginstal dan Memulai IIS

IIS adalah fitur Windows, salah satu dari satu set komponen sistem opsional yang dapat Anda instal di Windows Server. Anda dapat memiliki resep menginstal IIS dengan salah satu cara berikut:

catatan

powershell_scriptadalah salah satu sumber daya yang paling berguna untuk resep Windows. Anda dapat menggunakannya untuk melakukan berbagai tugas pada sebuah instance dengan menjalankan PowerShell skrip atau cmdlet. Ini sangat berguna untuk tugas-tugas yang tidak didukung oleh sumber daya Chef.

Contoh ini menjalankan PowerShell skrip untuk menginstal dan memulai Web Server (IIS). windowsBuku masak dijelaskan nanti. Untuk contoh cara menggunakan windows_feature untuk menginstal IIS, lihatMenginstal Fitur Windows: IIS.

Tambahkan resep bernama install.rb dengan konten berikut ke recipes direktori buku masak.

powershell_script 'Install IIS' do code 'Install-WindowsFeature Web-Server' not_if "(Get-WindowsFeature -Name Web-Server).Installed" end service 'w3svc' do action [:start, :enable] end

Resepnya berisi dua sumber daya.

powershell_script

powershell_scriptmenjalankan PowerShell skrip atau cmdlet yang ditentukan. Contoh ini memiliki pengaturan atribut berikut:

  • code— PowerShell Cmdlet untuk dijalankan.

    Contoh ini menjalankan Install-WindowsFeature cmdlet, yang menginstal Web Server (IIS). Secara umum, code atribut dapat memiliki sejumlah baris, sehingga Anda dapat menjalankan cmdlet sebanyak yang Anda butuhkan.

  • not-ifAtribut penjaga yang memastikan bahwa resep menginstal IIS hanya jika belum diinstal.

    Anda biasanya ingin resep menjadi idempoten, sehingga mereka tidak membuang waktu melakukan tugas yang sama lebih dari sekali.

Setiap sumber daya memiliki tindakan, yang menentukan tindakan yang harus diambil penyedia. Tidak ada tindakan eksplisit untuk contoh ini, sehingga penyedia mengambil :run tindakan default, yang menjalankan PowerShell skrip yang ditentukan. Untuk informasi selengkapnya, lihat Menjalankan PowerShell Skrip Windows.

layanan

A servicemengelola layanan, layanan Web Server IIS (W3SVC) dalam kasus ini. Contoh menggunakan atribut default dan menentukan dua tindakan, :start dan:enable, yang memulai dan mengaktifkan IIS.

catatan

Jika Anda ingin menginstal perangkat lunak yang menggunakan penginstal paket, seperti MSI, Anda dapat menggunakan sumber daya. windows_package Untuk informasi selengkapnya, lihat Menginstal Package.

Aktifkan Buku Masak Kustom

AWS OpsWorks Stacks menjalankan resep dari cache lokal pada setiap instance. Untuk menjalankan resep khusus Anda, Anda harus melakukan hal berikut:

  • Simpan buku masak di repositori jarak jauh.

    AWS OpsWorks Stacks mengunduh buku masak dari repositori ini ke cache lokal masing-masing instance.

  • Edit tumpukan untuk mengaktifkan buku masak khusus.

    Buku masak khusus dinonaktifkan secara default, jadi Anda harus mengaktifkan buku masak khusus untuk tumpukan dan memberikan URL repositori dan informasi terkait.

AWS OpsWorks Stacks mendukung arsip S3 dan repositori Git untuk buku masak kustom; contoh ini menggunakan arsip S3. Untuk informasi selengkapnya, lihat Repositori Buku Masak.

Untuk menggunakan arsip S3
  1. Buat .zip arsip iis-cookbook direktori.

    AWS OpsWorks Stacks juga mendukung arsip .tgz (gzip compressed tar) untuk tumpukan Windows.

  2. Unggah arsip ke bucket S3 di wilayah AS Barat (California Utara), dan buat file publik. Anda juga dapat menggunakan arsip S3 pribadi, tetapi arsip publik cukup untuk contoh ini dan agak lebih mudah untuk digunakan.

    1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

    2. Jika Anda belum memiliki bucketus-west-1, pilih Create Bucket dan buat bucket di wilayah AS Barat (California Utara).

    3. Dalam daftar bucket, pilih nama bucket yang ingin Anda unggah file, lalu pilih Unggah.

    4. Pilih Tambahkan File.

    5. Pilih file arsip yang akan diunggah, lalu pilih Buka.

    6. Di bagian bawah dialog Unggah - Pilih File dan Folder, pilih Atur Detail.

    7. Di bagian bawah dialog Set Detail, pilih Set Permissions.

    8. Dalam dialog Set Permissions, pilih Jadikan semuanya publik.

    9. Di bagian bawah dialog Set Permissions, pilih Start Upload. Saat unggahan selesai, iis-cookbook.zip file akan muncul di bucket Anda.

    10. Pilih bucket, lalu pilih tab Properties untuk bucket. Di samping Tautan, rekam URL file arsip untuk digunakan nanti.

    Untuk informasi selengkapnya tentang mengunggah file ke bucket Amazon S3, lihat Bagaimana Cara Mengunggah File dan Folder ke Bucket S3? di Panduan Pengguna Konsol Amazon S3.

penting

Hingga saat ini, penelusuran hanya membebani Anda sedikit waktu; layanan AWS OpsWorks Stacks itu sendiri gratis. Namun, Anda harus membayar sumber daya AWS apa pun yang Anda gunakan, seperti penyimpanan Amazon S3. Segera setelah Anda mengunggah arsip, Anda mulai dikenakan biaya. Untuk informasi selengkapnya, lihat Harga AWS.

Untuk mengaktifkan buku masak khusus untuk tumpukan
  1. Di konsol AWS OpsWorks Stacks, pilih Stack di panel navigasi, lalu pilih Stack Settings di kanan atas.

  2. Di kanan atas halaman Pengaturan, pilih Edit.

  3. Pada halaman Pengaturan, atur Gunakan buku masak Chef kustom ke Ya dan masukkan informasi berikut:

    • Jenis repositori - Arsip S3.

    • URL Repositori — URL S3 dari file arsip buku masak yang Anda rekam sebelumnya.

  4. Pilih Simpan untuk memperbarui konfigurasi tumpukan.

AWS OpsWorks Stacks menginstal buku masak kustom Anda pada semua instance baru. Perhatikan bahwa AWS OpsWorks Stacks tidak secara otomatis menginstal atau memperbarui buku masak khusus pada instance online. Anda dapat melakukannya secara manual, seperti yang dijelaskan nanti.