Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengejek Konfigurasi Stack dan Atribut Deployment di Vagrant
penting
Bagian AWS OpsWorks Stacks layanan 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: posting
catatan
Topik ini hanya berlaku untuk instance Linux. Test Kitchen belum mendukung Windows, jadi Anda akan menjalankan semua contoh Windows AWS OpsWorks Tumpukan contoh.
AWS OpsWorks Stacks menambahkan konfigurasi tumpukan dan atribut penerapan ke objek node untuk setiap instance di tumpukan Anda untuk setiap peristiwa siklus hidup. Atribut ini menyediakan snapshot konfigurasi tumpukan, termasuk konfigurasi setiap lapisan dan instance online-nya, konfigurasi setiap aplikasi yang diterapkan, dan sebagainya. Karena atribut ini ada di objek simpul, mereka dapat diakses oleh resep apa pun; sebagian besar resep untuk AWS OpsWorks Instans tumpukan menggunakan satu atau lebih atribut ini.
Sebuah instance yang berjalan di kotak Vagrant tidak dikelola oleh AWS OpsWorks Tumpukan, sehingga objek simpulnya tidak menyertakan konfigurasi tumpukan dan atribut penerapan apa pun secara default. Namun, Anda dapat menambahkan serangkaian atribut yang sesuai ke lingkungan Test Kitchen. Test Kitchen kemudian menambahkan atribut ke objek node instance, dan resep Anda dapat mengakses atribut seperti pada AWS OpsWorks Tumpukan misalnya.
Topik ini menunjukkan cara mendapatkan salinan konfigurasi tumpukan dan atribut penerapan yang sesuai, menginstal atribut pada instance, dan mengaksesnya.
catatan
Jika Anda menggunakan Test Kitchen untuk menjalankan pengujian pada resep Anda, fauxhai
Untuk mengatur buku masak
-
Buat subdirektori
opsworks_cookbooks
bernamaprintjson
dan navigasikan ke sana. -
Inisialisasi dan konfigurasikan Test Kitchen, seperti yang dijelaskan dalamContoh 1: Menginstal Paket.
-
Tambahkan dua subdirektori ke
printjson
:recipes
dan.environments
Anda dapat mengejek konfigurasi tumpukan dan atribut penerapan dengan menambahkan file atribut ke buku masak Anda dengan definisi yang sesuai, tetapi pendekatan yang lebih baik adalah dengan menggunakan lingkungan Test Kitchen. Ada dua pendekatan dasar:
-
Tambahkan definisi atribut ke
.kitchen.yml
.Pendekatan ini paling berguna jika Anda hanya memiliki beberapa atribut. Untuk informasi lebih lanjut, lihat kitchen.yl
. -
Tentukan atribut dalam file lingkungan dan referensi file di
.kitchen.yml
.Pendekatan ini biasanya lebih disukai untuk konfigurasi tumpukan dan atribut penyebaran karena file lingkungan sudah dalam JSON format. Anda bisa mendapatkan salinan atribut dalam JSON format dari yang sesuai AWS OpsWorks Tumpukan instance dan tempelkan saja. Semua contoh menggunakan file lingkungan.
Cara termudah untuk membuat konfigurasi tumpukan dan atribut penerapan untuk buku masak Anda adalah dengan membuat tumpukan yang dikonfigurasi dengan tepat dan menyalin atribut yang dihasilkan dari instance sebagai. JSON Agar file lingkungan Test Kitchen Anda tetap dapat dikelola, Anda kemudian dapat mengeditnya JSON agar hanya memiliki atribut yang dibutuhkan resep Anda. Contoh dalam Bab ini didasarkan pada tumpukan dariMemulai dengan Chef 11 Linux Stacks, yang merupakan tumpukan server PHP aplikasi sederhana dengan penyeimbang beban, server PHP aplikasi, dan server SQL database Saya.
Untuk membuat konfigurasi tumpukan dan penerapan JSON
-
Buat MyStack seperti yang dijelaskan dalamMemulai dengan Chef 11 Linux Stacks, termasuk menerapkan S. implePHPApp Jika mau, Anda dapat menghilangkan instance Server PHP Aplikasi kedua yang dipanggilLangkah 4: Skala Keluar MyStack; contoh tidak menggunakan atribut tersebut.
-
Jika Anda belum melakukannya, mulai
php-app1
instance, dan kemudian masuk dengan SSH. -
Di jendela terminal, jalankan perintah agent cli berikut:
sudo opsworks-agent-cli get_json
Perintah ini mencetak konfigurasi tumpukan terbaru dan atribut penerapan instance ke jendela terminal dalam JSON format.
-
Salin JSON ke
.json
file dan simpan di lokasi yang nyaman di workstation Anda. Detailnya tergantung pada SSH klien Anda. Misalnya, jika Anda menggunakan Pu TTY di Windows, Anda dapat menjalankanCopy All to Clipboard
perintah, yang menyalin semua teks di jendela terminal ke clipboard Windows. Anda kemudian dapat menempelkan konten ke dalam.json
file dan mengedit file untuk menghapus teks asing. -
Edit MyStack JSON sesuai kebutuhan. Konfigurasi tumpukan dan atribut penerapan sangat banyak, dan buku masak biasanya hanya menggunakan sebagian kecil saja. Agar file lingkungan Anda tetap dapat dikelola, Anda dapat mengedit JSON sehingga mempertahankan struktur aslinya tetapi hanya berisi atribut yang benar-benar digunakan buku masak Anda.
Contoh ini menggunakan versi yang banyak diedit dari MyStack JSON yang mencakup hanya dua
['opsworks']['stack']
atribut,['id]
dan['name']
. Buat versi yang diedit dari MyStack JSON yang terlihat seperti berikut ini:{ "opsworks": { "stack": { "name": "MyStack", "id": "42dfd151-6766-4f1c-9940-ba79e5220b58", }, }, }
Untuk JSON memasukkan ini ke objek node instance, Anda perlu menambahkannya ke lingkungan Test Kitchen.
Untuk menambahkan konfigurasi tumpukan dan atribut penerapan ke lingkungan Test Kitchen
-
Buat file lingkungan bernama
test.json
dengan konten berikut dan simpan keenvironments
folder buku masak.{ "default_attributes": { "opsworks" : { "stack" : { "name" : "MyStack", "id" : "42dfd151-6766-4f1c-9940-ba79e5220b58" } } }, "chef_type" : "environment", "json_class" : "Chef::Environment" }
File lingkungan memiliki elemen-elemen berikut:
-
default_attributes
— Atribut default dalam JSON format.Atribut ini ditambahkan ke objek node dengan tipe
default
atribut, yang merupakan tipe yang digunakan oleh semua konfigurasi tumpukan dan JSON atribut penerapan. Contoh ini menggunakan versi diedit dari konfigurasi tumpukan dan penerapan yang JSON ditunjukkan sebelumnya. -
chef_type
— Atur elemen ini keenvironment
. -
json_class
— Atur elemen ini keChef::Environment
.
-
-
Edit
.kitchen.yml
untuk menentukan lingkungan Test Kitchen, sebagai berikut.--- driver: name: vagrant provisioner: name: chef_solo environments_path: ./environments platforms: - name: ubuntu-12.04 suites: - name: printjson provisioner: solo_rb: environment: test run_list: - recipe[printjson::default] attributes:
Anda menentukan lingkungan dengan menambahkan elemen berikut ke default yang
.kitchen.yml
dibuat olehkitchen init
.- penyedia
-
Tambahkan elemen berikut.
-
name
— Atur elemen ini kechef_solo
.Untuk mereplikasi AWS OpsWorks Tumpukan lingkungan lebih dekat, Anda dapat menggunakan mode lokal klien Chef
alih-alih Chef solo. Mode lokal adalah opsi klien Chef yang menggunakan versi ringan dari server Chef (Chef Zero) yang berjalan secara lokal pada instance alih-alih server jarak jauh. Ini memungkinkan resep Anda untuk menggunakan fitur server Chef seperti pencarian atau tas data tanpa terhubung ke server jarak jauh. -
environments_path
— Subdirektori buku masak yang berisi file lingkungan,./environments
untuk contoh ini.
-
- setelan:penyedia
-
Tambahkan
solo_rb
elemen denganenvironment
elemen yang disetel ke nama file lingkungan, dikurangi ekstensi.json. Contoh ini ditetapkanenvironment
ketest
.
-
Buat file resep bernama
default.rb
dengan konten berikut dan simpan kerecipes
direktori buku masak.log "Stack name: #{node['opsworks']['stack']['name']}" log "Stack id: #{node['opsworks']['stack']['id']}"
Resep ini hanya mencatat dua konfigurasi tumpukan dan nilai penerapan yang Anda tambahkan ke lingkungan. Meskipun resep berjalan secara lokal di Virtual Box, Anda mereferensikan atribut tersebut menggunakan sintaks simpul yang sama dengan yang Anda lakukan jika resep berjalan pada AWS OpsWorks Tumpukan misalnya.
-
Jalankan
kitchen converge
. Anda akan melihat sesuatu seperti output log berikut.... Converging 2 resources Recipe: printjson::default * log[Stack name: MyStack] action write[2014-07-01T23:14:09+00:00] INFO: Processing log[Stack name: MyStack] action write (printjson::default line 1) [2014-07-01T23:14:09+00:00] INFO: Stack name: MyStack * log[Stack id: 42dfd151-6766-4f1c-9940-ba79e5220b58] action write[2014-07-01T23:14:09+00:00] INFO: Processing log[Stack id: 42dfd151-6766-4f1c-9940-ba79e5220b58] action write (printjson::default line 2) [2014-07-01T23:14:09+00:00] INFO: Stack id: 42dfd151-6766-4f1c-9940-ba79e5220b58 ...