

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

# Manajemen skrip
<a name="scripts-management"></a>

Solusi Cloud Migration Factory on AWS memungkinkan pengguna untuk sepenuhnya mengelola pustaka skrip atau paket otomatisasi dalam antarmuka pengguna. Anda dapat mengunggah skrip kustom baru serta versi baru skrip menggunakan antarmuka manajemen skrip. Ketika beberapa versi tersedia, administrator dapat beralih di antara versi ini yang memungkinkan kemampuan untuk menguji pembaruan sebelum menjadikannya default. Antarmuka manajemen skrip juga memungkinkan administrator untuk mengunduh paket skrip untuk memperbarui atau meninjau konten.

Paket skrip yang didukung adalah arsip zip terkompresi yang berisi file wajib berikut di root:
+  **Package-structure.yml** - Digunakan untuk mendefinisikan argumen script dan metadata lainnya, seperti deskripsi dan nama default. Lihat [Menulis paket skrip baru](#composing-a-new-script-package) untuk detail selengkapnya.
+  **[skrip python khusus] .py** - Ini adalah skrip awal yang akan dijalankan saat pekerjaan dikirimkan. Skrip ini dapat memanggil skrip dan modul lain dan jika demikian ini harus disertakan dalam arsip. Nama skrip ini harus sesuai dengan nilai yang ditentukan dalam `MasterFileName` kunci di`Package-Structure.yml`.

## Konfigurasi Platform Komputasi
<a name="compute-platform-configuration"></a>

Dua platform komputasi tersedia untuk menjalankan skrip otomatisasi: \* “Dokumen Otomasi SSM” - Mengeksekusi skrip secara langsung sebagai Dokumen AWS Systems Manager Automation tanpa memerlukan server otomatisasi \* “Server Otomasi” - Mengeksekusi skrip pada instance server otomatisasi khusus (ini adalah platform default jika tidak ditentukan)

Platform komputasi untuk eksekusi skrip didefinisikan dalam `Package-Structure.yml` file, untuk autmasi berbasis SSM langsung, tambahkan baris berikut setelah: `MasterFileName` `ComputePlatform: "SSM Automation Document"` 

## Unggah paket skrip baru
<a name="upload-new-script-package"></a>

**catatan**  
Paket skrip harus sesuai dengan format yang didukung. Lihat [Menulis paket skrip baru](#composing-a-new-script-package) untuk detail selengkapnya.

1. Pilih **Tambahkan** pada tabel **Skrip Otomasi**.

1. Pilih file arsip paket yang ingin Anda unggah.

1. Masukkan nama unik untuk skrip. Pengguna akan mereferensikan skrip dengan nama ini untuk memulai pekerjaan.

## Unduh paket skrip
<a name="download-script-packages"></a>

Anda dapat mengunduh paket skrip dari konsol untuk mengaktifkan pembaruan dan verifikasi konten.

1. Pilih **Otomatisasi**, lalu **Skrip.**

1. Pilih skrip yang ingin Anda unduh dari tabel, lalu pilih **Tindakan** dan pilih **Unduh versi default** atau **Unduh versi terbaru**.

Anda dapat mengunduh versi skrip tertentu. Untuk melakukannya, pilih skrip, lalu **Tindakan** dan pilih **Ubah versi default.** Dari daftar **Versi Default Script**, pilih **Unduh versi yang dipilih**.

## Tambahkan versi baru dari paket skrip
<a name="add-new-version-of-a-script-package"></a>

Pembaruan paket skrip AWS Cloud Migration Factory dapat diunggah di bagian **Otomasi** > **Skrip** dengan mengikuti langkah-langkah berikut:

1. Pilih **Otomatisasi,** lalu **Skrip.** 

1. Pilih skrip yang ada untuk menambahkan versi baru, lalu pilih **Tindakan** dan pilih **Tambahkan versi baru**.

1. Pilih file arsip paket yang diperbarui yang ingin Anda unggah, dan pilih **Berikutnya**. Versi skrip baru akan mempertahankan nama yang ada secara default. Masukkan nama skrip yang unik. Perubahan nama apa pun hanya akan diterapkan pada versi skrip ini.

1. Anda dapat menjadikan versi baru skrip sebagai versi default dengan memilih **Buat versi default**.

1. Pilih **Unggah**.

## Menghapus paket skrip dan versi
<a name="deleting-script-packages-and-versions"></a>

Anda tidak dapat menghapus skrip atau versi skrip untuk tujuan audit. Ini memungkinkan meninjau skrip yang tepat yang dijalankan terhadap sistem pada suatu titik waktu. Setiap versi skrip memiliki tanda tangan dan ID unik saat diunggah yang direkam dengan riwayat pekerjaan tempat skrip dan versi digunakan.

## Menyusun paket skrip baru
<a name="composing-a-new-script-package"></a>

Pabrik Migrasi Cloud pada paket skrip AWS mendukung Python sebagai bahasa skrip utama. Anda dapat memulai bahasa scripting shell lainnya seperti yang diperlukan dari dalam program utama Python atau wrapper. Untuk membuat paket skrip baru dengan cepat, kami sarankan mengunduh salinan salah satu skrip yang dikemas sebelumnya dan memperbaruinya untuk melakukan tugas yang diperlukan. Anda harus terlebih dahulu membuat skrip master Python yang akan melakukan fungsionalitas inti skrip. Kemudian, buat `Package-Structure.yml` file untuk menentukan argumen dan metadata lain yang dibutuhkan skrip. Lihat `Package-Structure.yml` opsi untuk lebih jelasnya.

### Skrip Python utama
<a name="main-python-script"></a>

Ini adalah skrip utama awal yang berjalan ketika pekerjaan dimulai. Setelah skrip selesai berjalan, tugas selesai dan kode pengembalian akhir menentukan status pekerjaan. Semua output dari skrip ini ditangkap saat dijalankan dari jarak jauh dan diteruskan ke log audit keluaran pekerjaan untuk referensi. Log ini juga disimpan di Amazon CloudWatch.

#### Mengakses Cloud Migration Factory pada data AWS dan APIs dari skrip
<a name="accessing-cloud-migration-factory-on-aws-data-and-apis-from-a-script"></a>

Untuk menyediakan akses ke Cloud Migration Factory di AWS APIs dan data, Anda dapat menggunakan modul pembantu python yang disertakan. Modul ini menyediakan fungsi utama di bawah ini adalah beberapa fungsi utama untuk memulai:

 `factory_login` 

Mengembalikan token akses yang dapat digunakan untuk memanggil Cloud Migration Factory di AWS APIs. Fungsi ini akan mencoba login ke CMF menggunakan sejumlah upaya untuk kredensil:

1. Dengan mencoba mengakses rahasia default yang berisi userid akun layanan dan kata sandi jika ada dan akses diizinkan. Nama rahasia ini **MFServiceAkun-`userpool id`]** akan diperiksa.

1. Jika Langkah 1 tidak berhasil, dan pengguna menjalankan skrip dari baris perintah, maka pengguna akan diminta untuk menyediakan userid dan kata sandi pabrik AWS Cloud Migration. Jika dijalankan dari pekerjaan otomatisasi jarak jauh, pekerjaan akan gagal.

 `get_server_credentials` 

Mengembalikan kredensi login untuk server yang disimpan di AWS Cloud Migration Factory baik di Credentials Manager, atau melalui input pengguna. Fungsi ini akan memeriksa sejumlah sumber yang berbeda untuk menentukan kredensil untuk server tertentu, urutan sumbernya adalah:

1. Jika local\_username dan local\_password disetel dan valid maka ini akan dikembalikan.

1. Jika secret\_overide disetel maka ini akan digunakan untuk mengambil rahasia yang ditentukan dari AWS Secret Manager, jika tidak, periksa apakah catatan server berisi kunci **secret\_name dan ini tidak kosong maka nama** rahasia ini akan digunakan.

1. **Jika ada kegagalan menemukan atau mengakses rahasia yang ditentukan maka fungsi akan kembali meminta pengguna untuk kredensialnya, tetapi hanya jika **no\_user\_prompts** disetel ke False, jika tidak maka akan mengembalikan kegagalan.**

 **Parameter** 

local\_username - Jika lulus, maka akan dikembalikan.

local\_password - Jika lulus, maka akan dikembalikan.

server - CMF Server dict, seperti yang dikembalikan oleh get\_factory\_servers. di AWS Cloud Migration Factory.

Secret\_overide - Dilewatkan ini akan mengatur nama rahasia untuk mengambil dari Secrets Manager untuk server ini.

No\_user\_prompts - Memberitahu fungsi untuk tidak meminta pengguna untuk userid dan password jika tidak disimpan, ini harus True untuk skrip otomatisasi jarak jauh.

 `get_credentials` 

Mendapatkan kredensil yang disimpan menggunakan AWS Cloud Migration Factory Credentials Manager dari Secrets Manager.

 **Parameter** 

secret\_name - nama rahasia untuk mengambil.

get\_factory\_server

Mengembalikan array server dari datastore AWS Cloud Migration Factory berdasarkan waveid yang disediakan.

 **Parameter** 

waveid - Wave record ID dari server yang akan dikembalikan.

token - Token otentikasi diperoleh dari fungsi FactoryLogin Lambda.

app\_ids - Daftar opsional Id aplikasi dalam gelombang yang akan disertakan.

server\_ids - Daftar opsional Id server dalam gelombang dan aplikasi untuk disertakan.

os\_split - Jika diatur ke`true`, maka dua daftar akan dikembalikan satu untuk Linux dan satu server windows, jika False, maka satu daftar gabungan akan dikembalikan.

rtype - String opsional untuk memfilter hanya untuk Strategi Migrasi server tertentu, yaitu meneruskan nilai “Rehost” hanya akan mengembalikan server dengan Rehost.

#### Ringkasan pesan akhir
<a name="final-message-summary"></a>

Disarankan untuk memberikan pesan ringkasan hasil skrip sebagai output akhir ke layar atau sysout. Ini akan ditampilkan di konsol di properti **Pesan Terakhir**, yang memberikan status cepat dari hasil skrip tanpa pengguna harus membaca log keluaran lengkap.

#### Kode pengembalian
<a name="return-code"></a>

Skrip python utama harus mengembalikan kode pengembalian bukan nol saat keluar jika fungsi skrip tidak sepenuhnya berhasil. Saat menerima kode pengembalian bukan nol, status pekerjaan akan ditampilkan sebagai **Gagal** di log pekerjaan yang menunjukkan kepada pengguna bahwa mereka harus meninjau log keluaran untuk rincian kegagalan.

### Opsi paket-Struktur.yml YAML.yl
<a name="package-structure.yml-options"></a>

#### Contoh file YAMM
<a name="example"></a>

```
Name: "0-Check MGN Prerequisites"
Description: "This script will verify the source servers meet the basic requirements for AWS MGN agent installation."
MasterFileName: "0-Prerequisites-checks.py"
UpdateUrl: ""
Arguments:
-
name: "ReplicationServerIP"
description: "Replication Server IP."
long_desc: "IP Address of an AWS MGN Replication EC2 Instance."
type: "standard"
required: true
-
name: "SecretWindows"
long_desc: "Windows Secret to use for credentials."
description: "Windows Secret"
type: "relationship"
rel_display_attribute: "Name"
rel_entity: "secret"
rel_key: "Name"
-
name: "SecretLinux"
long_desc: "Linux Secret to use for credentials."
description: "Linux Secret"
type: "relationship"
rel_display_attribute: "Name"
rel_entity: "secret"
rel_key: "Name"
-
name: "Waveid"
description: "Wave Name"
type: "relationship"
rel_display_attribute: "wave_name"
rel_entity: "wave"
rel_key: "wave_id"
validation_regex: "^(?!\\s*$).+"
validation_regex_msg: "Wave must be provided."
required: true
SchemaExtensions:
-
schema: "server"
name: "server_pre_reqs_output"
description: "Pre-Req Output"
type: "string"
```

#### Deskripsi kunci YAMB
<a name="keys"></a>

Diperlukan

 **Nama** - Nama default yang akan digunakan skrip saat impor.

 **Deskripsi** - Deskripsi penggunaan skrip.

 **MasterFileName**- Ini adalah titik awal untuk menjalankan skrip, itu harus menjadi nama file python yang termasuk dalam arsip paket skrip.

 **Argumen** - Daftar argumen yang diterima skrip MasterFileName Python. Setiap argumen yang perlu ditentukan ada dalam format definisi AWS Cloud Migration Factory Attribute. Properti yang diperlukan untuk setiap argumen adalah **Nama** dan **Jenis**, semua properti lainnya adalah opsional.

Opsional

 **ComputePlatform**- Kunci ini menentukan di mana skrip akan dijalankan. Setel ke “Dokumen Otomasi SSM” untuk berjalan langsung di AWS Systems Manager tanpa server otomatisasi. Jika dihilangkan, default untuk mengeksekusi pada server otomatisasi.

 **UpdateUrl**- Berikan URL tempat sumber paket skrip tersedia untuk menyediakan pembaruan. Saat ini ini hanya untuk referensi.

 **SchemaExtensions**- Daftar atribut yang diperlukan skrip Python untuk berada dalam skema untuk menyimpan output atau mengambil data tambahan. Setiap atribut harus ditentukan dalam format definisi Atribut AWS CMF. Properti yang diperlukan untuk setiap atribut adalah **Skema**, **Nama, Deskripsi** dan **Jenis**. Semua properti lainnya opsional. Setiap atribut baru akan secara otomatis ditambahkan ke skema ketika skrip awalnya dimuat, dan perubahan tidak SchemaExtensions akan diproses untuk versi baru skrip. Jika ini diperlukan untuk skrip baru yang akan ditambahkan, pembaruan manual untuk skema harus dilakukan.