Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengembangkan EC2Rescue modul untuk instans Amazon EC2 Linux
Modul ditulis dalamYAML, standar serialisasi data. YAMLFile modul terdiri dari satu dokumen, mewakili modul dan atributnya.
Menambahkan atribut modul
Tabel berikut menjelaskan atribut modul yang tersedia.
Atribut |
Deskripsi |
---|---|
nama |
Nama modul. Nama harus berisi 18 karakter atau kurang. |
version |
Nomor versi modul. |
title |
Judul singkat dan deskriptif untuk modul. Panjang judul harus berisi 50 karakter atau kurang. |
helptext |
Deskripsi modul yang lebih panjang. Setiap baris harus berisi 75 karakter atau kurang. Jika modul menggunakan argumen, yang bersifat wajib atau opsional, sertakan argumen tersebut dalam nilai teks bantuan. Misalnya:
|
placement |
Tahap ketika modul harus dijalankan. Nilai yang didukung:
|
language |
Bahasa yang digunakan untuk menuliskan kode modul. Nilai yang didukung:
catatanKode Python harus kompatibel dengan Python 2.7.9+ maupun Python 3.2+. |
remediation |
Menunjukkan apakah modul mendukung remediasi. Nilai yang didukung adalah Secara default, modul menjadi |
content |
Keseluruhan kode skrip. |
constraint |
Nama objek yang berisi nilai kendala. |
domain |
Penjelasan tentang cara modul dikelompokkan atau diklasifikasikan. Rangkaian modul yang disertakan menggunakan domain berikut:
|
class |
Penjelasan tentang tipe tugas yang dilakukan oleh modul. Rangkaian modul yang disertakan menggunakan domain berikut:
|
distro |
Daftar distribusi Linux yang didukung oleh modul ini. Rangkaian modul yang disertakan menggunakan distribusi berikut:
|
diperlukan |
Argumen yang diperlukan bahwa modul mengkonsumsi dari CLI opsi. |
optional |
Argumen opsional yang dapat digunakan oleh modul. |
software |
Perangkat lunak yang dapat dieksekusi yang digunakan di dalam modul. Atribut ini ditujukan untuk menentukan perangkat lunak yang tidak terinstal secara default. Logika EC2Rescue untuk Linux memastikan bahwa program ini ada dan dapat dieksekusi sebelum menjalankan modul. |
package |
Paket perangkat lunak sumber untuk file yang dapat dieksekusi. Atribut ini dimaksudkan untuk memberikan rincian tambahan pada paket dengan perangkat lunak, termasuk URL untuk mengunduh atau mendapatkan informasi lebih lanjut. |
sudo |
Mengindikasikan apakah akses root diperlukan untuk menjalankan modul. Anda tidak perlu menerapkan pengecekan sudo dalam skrip modul. Jika nilainya benar, maka logika EC2Rescue untuk Linux hanya menjalankan modul ketika pengguna yang mengeksekusi memiliki akses akar. |
perfimpact |
Mengindikasikan apakah modul dapat menimbulkan dampak performa yang signifikan terhadap lingkungan tempat modul dijalankan. Jika nilainya benar dan argumen |
parallelexclusive |
Menentukan program yang membutuhkan eksklusivitas bersama. Misalnya, semua modul yang menentukan proses "bpf" dijalankan secara bersambung. |
Menambahkan variabel lingkungan
Tabel berikut menjelaskan variabel lingkungan yang tersedia.
Variabel Lingkungan | Deskripsi |
---|---|
|
Path ke ec2rl.py . Path ini dapat digunakan untuk menemukan direktori lib dan menggunakan modul Python yang bervendor. |
|
Direktori tmp utama untuk alat diagnostik. Nilai default: |
|
Direktori tempat semua output disimpan. Nilai default: |
|
Direktori root untuk menempatkan data modul yang dikumpulkan. Nilai default: |
|
Driver yang digunakan untuk antarmuka jaringan non-virtual pertama yang diurutkan menurut abjad pada instans. Contoh:
|
|
Benar jika EC2Rescue untuk Linux dijalankan sebagai akar; jika tidak, salah. |
|
Tipe virtualisasi seperti yang disediakan oleh metadata instans. Contoh:
|
|
Daftar antarmuka yang disebutkan pada sistem. Nilai tersebut adalah string yang berisi nama, seperti |
Gunakan YAML sintaks
Berikut ini harus diperhatikan saat membuat YAML file modul Anda:
-
Tiga tanda hubung (
---
) menunjukkan awal yang jelas dari suatu dokumen. -
!ec2rlcore.module.Module
Tag memberi tahu YAML parser konstruktor mana yang akan dipanggil saat membuat objek dari aliran data. Anda dapat menemukan konstruktor di dalam filemodule.py
. -
!!str
Tag memberitahu YAML parser untuk tidak mencoba untuk menentukan jenis data, dan sebagai gantinya menafsirkan konten sebagai string literal. -
Karakter pipa (
|
) memberi tahu YAML parser bahwa nilainya adalah skalar gaya literal. Dalam hal ini, pengurai menyertakan semua spasi. Ini penting untuk modul karena indentasi dan karakter baris baru disimpan. -
Indentasi YAML standar adalah dua spasi, yang dapat dilihat pada contoh berikut. Pastikan Anda mempertahankan indentasi standar (misalnya, empat spasi untuk Python) untuk skrip Anda dan kemudian menunjukkan seluruh konten dua spasi di dalam file modul.
Contoh modul
Contoh satu (mod.d/ps.yaml
):
--- !ec2rlcore.module.Module # Module document. Translates directly into an almost-complete Module object name: !!str ps path: !!str version: !!str 1.0 title: !!str Collect output from ps for system analysis helptext: !!str | Collect output from ps for system analysis Requires --times= for number of times to repeat Requires --period= for time period between repetition placement: !!str run package: - !!str language: !!str bash content: !!str | #!/bin/bash error_trap() { printf "%0.s=" {1..80} echo -e "\nERROR: "$BASH_COMMAND" exited with an error on line ${BASH_LINENO[0]}" exit 0 } trap error_trap ERR # read-in shared function source functions.bash echo "I will collect ps output from this $EC2RL_DISTRO box for $times times every $period seconds." for i in $(seq 1 $times); do ps auxww sleep $period done constraint: requires_ec2: !!str False domain: !!str performance class: !!str collect distro: !!str alami ubuntu rhel suse required: !!str period times optional: !!str software: !!str sudo: !!str False perfimpact: !!str False parallelexclusive: !!str