Mengejek Konfigurasi Stack dan Atribut Deployment di Vagrant - AWS OpsWorks

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 atau melalui AWS Dukungan Premium.

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 menyediakan cara alternatif untuk mengolok-olok konfigurasi dan penerapan tumpukan. JSON

Untuk mengatur buku masak
  1. Buat subdirektori opsworks_cookbooks bernama printjson dan navigasikan ke sana.

  2. Inisialisasi dan konfigurasikan Test Kitchen, seperti yang dijelaskan dalamContoh 1: Menginstal Paket.

  3. Tambahkan dua subdirektori keprintjson: 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
  1. 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.

  2. Jika Anda belum melakukannya, mulai php-app1 instance, dan kemudian masuk dengan SSH.

  3. 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.

  4. 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 menjalankan Copy 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.

  5. 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
  1. Buat file lingkungan bernama test.json dengan konten berikut dan simpan ke environments 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.

  2. 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 dengan environment elemen yang disetel ke nama file lingkungan, dikurangi ekstensi.json. Contoh ini ditetapkan environment ketest.

  3. Buat file resep bernama default.rb dengan konten berikut dan simpan ke recipes 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.

  4. 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 ...