Memecahkan masalah dengan agen v2 EC2Launch - Amazon Elastic Compute Cloud

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

Memecahkan masalah dengan agen v2 EC2Launch

Bagian ini menunjukkan skenario pemecahan masalah umum untuk EC2Launch v2, informasi tentang melihat log peristiwa Windows, dan keluaran log konsol dan pesan.

Skenario pemecahan masalah umum

Bagian ini menunjukkan skenario pemecahan masalah umum dan langkah-langkah penyelesaiannya.

Layanan gagal menyetel wallpaper

Resolusi
  1. Periksa apakah %AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\setwallpaper.lnk ada.

  2. Periksa %ProgramData%\Amazon\EC2Launch\log\agent.log untuk melihat apakah ada kesalahan yang terjadi.

Layanan gagal menjalankan data pengguna

Penyebab potensial: Layanan mungkin gagal sebelum menjalankan data pengguna.

Resolusi
  1. Periksa %ProgramData%\Amazon\EC2Launch\state\previous-state.json.

  2. Lihat jika boot, network, preReady, dan postReadyLocalData semuanya telah ditandai sebagai sukses.

  3. Jika salah satu tahapan gagal, periksa %ProgramData%\Amazon\EC2Launch\log\agent.log jika ada kesalahan tertentu.

Layanan menjalankan tugas hanya satu kali

Resolusi
  1. Periksa frekuensi tugas.

  2. Jika layanan sudah berjalan setelah Sysprep, dan frekuensi tugas diatur ke once, tugas tidak akan dijalankan lagi.

  3. Atur frekuensi tugas ke always jika Anda ingin menjalankan tugas setiap kali EC2Launch v2 berjalan.

Layanan gagal menjalankan tugas

Resolusi
  1. Periksa entri terbaru di %ProgramData%\Amazon\EC2Launch\log\agent.log.

  2. Jika tidak ada kesalahan yang terjadi, coba jalankan layanan secara manual dari "%ProgramFiles%\Amazon\EC2Launch\EC2Launch.exe" run untuk melihat apakah tugas berhasil.

Layanan menjalankan data pengguna lebih dari satu kali

Resolusi

Data pengguna ditangani secara berbeda antara EC2Launch v1 dan EC2Launch v2. EC2Launchv1 menjalankan data pengguna sebagai tugas terjadwal pada instance saat persist disetel ketrue. Jika persist diatur ke, falsemaka tugas tidak dijadwalkan bahkan saat keluar dengan reboot atau terganggu saat berjalan.

EC2Launchv2 menjalankan data pengguna sebagai tugas agen dan melacak status jalanannya. Jika masalah data pengguna me-restart komputer atau jika data pengguna terganggu saat berjalan, maka status berjalan-nya masih tetap ada sebagai pending dan data pengguna akan berjalan lagi pada boot instans berikutnya. Jika Anda ingin mencegah skrip data pengguna berjalan lebih dari sekali, buat skrip menjadi idempoten.

Contoh skrip idempotensi berikut mengatur nama komputer dan bergabung dengan domain.

<powershell> $name = $env:computername if ($name -ne $desiredName) { Rename-Computer -NewName $desiredName } $domain = Get-ADDomain if ($domain -ne $desiredDomain) { Add-Computer -DomainName $desiredDomain } $telnet = Get-WindowsFeature -Name Telnet-Client if (-not $telnet.Installed) { Install-WindowsFeature -Name "Telnet-Client" } </powershell> <persist>false</persist>

Tugas terjadwal dari EC2Launch v1 gagal dijalankan setelah migrasi ke v2 EC2Launch

Resolusi

Alat migrasi tidak mendeteksi tugas terjadwal yang ditautkan ke skrip EC2Launch v1; oleh karena itu, alat ini tidak secara otomatis mengatur tugas-tugas tersebut di EC2Launch v2. Untuk mengonfigurasi tugas-tugas ini, edit agent-config.ymlfile, atau gunakan kotak dialog pengaturan EC2Launch v2. Misalnya, jika sebuah instance memiliki tugas terjadwal yang berjalanInitializeDisks.ps1, maka setelah Anda menjalankan alat migrasi, Anda harus menentukan volume yang ingin Anda inisialisasi di kotak dialog pengaturan EC2Launch v2. Lihat Langkah 6 prosedur untuk Ubah pengaturan menggunakan kotak dialog pengaturan EC2Launch v2.

Layanan menginisialisasi EBS volume yang tidak kosong

Resolusi

Sebelum menginisialisasi volume, EC2Launch v2 mencoba mendeteksi apakah itu kosong. Jika volume tidak kosong, maka ia melewatkan inisialisasi. Setiap volume yang terdeteksi sebagai tidak kosong tidak akan diinisialisasi. Volume dianggap kosong jika 4 KiB pertama dari volume adalah kosong, atau jika volume tidak memiliki tata letak hard disk yang dapat dikenali Windows. Volume yang diinisialisasi dan diformat pada sistem Linux tidak memiliki tata letak drive yang dapat dikenali Windows, misalnya atau. MBR GPT Oleh karena itu, volume tersebut akan dianggap sebagai volume kosong dan diinisialisasi. Jika Anda ingin menyimpan data ini, jangan mengandalkan deteksi drive kosong EC2Launch v2. Sebagai gantinya, tentukan volume yang ingin Anda inisialisasi di kotak dialog pengaturan EC2Launch v2 (lihat langkah 6) atau di agent-config.yml.

Tugas setWallpaper tidak diaktifkan tetapi wallpaper diatur ulang saat reboot

Task setWallpaper membuat file pintasan setwallpaper.lnk di folder startup setiap pengguna yang ada kecuali untuk Default User. File pintasan ini berjalan saat pengguna masuk untuk pertama kalinya setelah boot instans. File ini menyiapkan instans dengan wallpaper kustom yang menampilkan atribut instans. Menghapus setWallpaper tugas tidak menghapus file pintasan ini. Anda harus menghapus file ini secara manual atau menghapusnya menggunakan skrip.

Jalur pintasnya adalah:

$env:SystemDrive/Users/<user>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/setwallpaper.lnk

Resolusi

Hapus file ini secara manual, atau hapus menggunakan skrip.

Contoh PowerShell skrip untuk menghapus file pintasan

foreach ($userDir in (Get-ChildItem "C:\Users" -Force -Directory).FullName) { $startupPath = Join-Path $userDir -ChildPath "AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" if (Test-Path $startupPath) { $wallpaperSetupPath = Join-Path $startupPath -ChildPath "setwallpaper.lnk" if (Test-Path $wallpaperSetupPath) { Remove-Item $wallpaperSetupPath -Force -Confirm:$false } } }

Layanan macet dalam status berjalan

Deskripsi

EC2Launchv2 diblokir, dengan pesan log (agent.log) mirip dengan berikut ini:

2022-02-24 08:08:58 Info: ***************************************************************************************** 2022-02-24 08:08:58 Info: EC2Launch Service starting 2022-02-24 08:08:58 Info: Windows event custom log exists: Amazon EC2Launch 2022-02-24 08:08:58 Info: ACPI SPCR table not supported. Bailing Out 2022-02-24 08:08:58 Info: Serial port is in use. Waiting for Serial Port... 2022-02-24 08:09:00 Info: ACPI SPCR table not supported. Use default console port. 2022-02-24 08:09:02 Info: ACPI SPCR table not supported. Use default console port. 2022-02-24 08:09:04 Info: ACPI SPCR table not supported. Use default console port. 2022-02-24 08:09:06 Info: ACPI SPCR table not supported. Use default console port.
Kemungkinan penyebab

SACdiaktifkan dan menggunakan port serial. Untuk informasi selengkapnya, lihat Menggunakan SAC untuk memecahkan masalah instance Windows Anda.

Resolusi

Coba langkah-langkah berikut untuk mengatasi masalah ini:

  • Nonaktifkan layanan yang menggunakan port serial.

  • Jika Anda ingin layanan terus menggunakan port serial, tulis skrip khusus untuk melakukan tugas agen peluncuran dan menginvokasinya sebagai tugas terjadwal.

Tidak valid agent-config.yml mencegah membuka kotak dialog pengaturan EC2Launch v2

Deskripsi

EC2Launchpengaturan v2 mencoba mengurai agent-config.yml file sebelum membuka kotak dialog. Jika file YAML konfigurasi tidak mengikuti skema yang didukung, kotak dialog akan menampilkan kesalahan berikut:

Unable to parse configuration file agent-config.yml. Review configuration file. Exiting application.

Resolusi
  1. Verifikasi bahwa file konfigurasi mengikuti skema yang didukung.

  2. Jika Anda ingin memulai dari awal, salin file konfigurasi default ke agent-config.yml. Anda dapat menggunakan contoh agent-config.yml yang disediakan di bagian Konfigurasi Tugas.

  3. Anda juga dapat memulai dari awal dengan menghapus agent-config.yml. EC2Launchpengaturan v2 menghasilkan file konfigurasi kosong.

task:executeScript should be unique and only invoked once

Deskripsi

Tugas tidak dapat diulang dalam tahap yang sama.

Resolusi

Beberapa tugas harus dimasukkan sebagai array, seperti executeScriptdan executeProgram. Untuk contoh cara menulis skrip sebagai array, lihat executeScript.

Log peristiwa Windows

EC2Launchv2 menerbitkan log peristiwa Windows untuk acara penting, seperti memulai layanan, Windows siap, dan keberhasilan dan kegagalan tugas. Pengidentifikasi peristiwa secara unik mengidentifikasi peristiwa tertentu. Setiap acara berisi informasi tahapan, tugas, dan level, serta deskripsi. Anda dapat mengatur pemicu untuk peristiwa tertentu menggunakan pengenal peristiwa.

Acara IDs memberikan informasi tentang suatu peristiwa dan secara unik mengidentifikasi beberapa peristiwa. Digit paling signifikan dari ID peristiwa menunjukkan tingkat keparahan suatu peristiwa.

Peristiwa Digit paling tidak signifikan
Success . . .0
Informational . . .1
Warning . . .2
Error . . .3

Peristiwa terkait layanan yang dihasilkan ketika layanan dimulai atau berhenti termasuk satu digit pengenal peristiwa.

Peristiwa Pengenal digit tunggal
Success 0
Informational 1
Warning 2
Error 3

Pesan peristiwa untuk peristiwa EC2LaunchService.exe dimulai dengan Service:. Pesan peristiwa untuk peristiwa EC2Launch.exe tidak dimulai dengan Service:.

Acara empat digit IDs mencakup informasi tentang tahap, tugas, dan tingkat keparahan suatu peristiwa.

Format ID Peristiwa

Tabel berikut menunjukkan format pengenal peristiwa EC2Launch v2.

3 2 1 0

D

T

L

Huruf dan angka dalam tabel mewakili tipe dan definisi peristiwa berikut.

Tipe peristiwa Definisi

S (Panggung)

0 - Pesan tingkat layanan

1 - Boot

2 - Jaringan

3 - PreReady

5 - Windows sudah Siap

6 - PostReady

7 - Data Pengguna

T (Tugas)

Tugas yang diwakili oleh dua nilai yang sesuai berbeda untuk setiap tahap. Untuk melihat daftar lengkap peristiwa, lihat Skema log Peristiwa Windows.

L (Level peristiwa)

0 - Sukses

1 - Informasi

2 - Peringatan

3 - Kesalahan

Contoh ID Peristiwa

Berikut adalah contoh acaraIDs .

  • 5000 - Windows siap digunakan

  • 3010- Aktifkan tugas windows di PreReady panggung berhasil

  • 6013- Mengatur tugas wallpaper di tahap Data PostReady Lokal mengalami kesalahan

Skema log peristiwa Windows

MessageId/ Id Acara Pesan acara
. . .0 Success
. . .1 Informational
. . .2 Warning
. . .3 Error
x EC2Launch service-level logs
0 EC2Launch service exited successfully
1 EC2Launch service informational logs
2 EC2Launch service warning logs
3 EC2Launch service error logs
10 Replace state.json with previous-state.json
100 Serial Port
200 Sysprep
300 PrimaryNic
400 Metadata
x000 Stage (1 digit), Task (2 digits), Status (1 digit)
1000 Boot
1010 Boot - extend_root_partition
2000 Network
2010 Network - add_routes
3000 PreReady
3010 PreReady - activate_windows
3020 PreReady - install_egpu_manager
3030 PreReady - set_monitor_on
3040 PreReady - set_hibernation
3050 PreReady - set_admin_account
3060 PreReady - set_dns_suffix
3070 PreReady - set_wallpaper
3080 PreReady - set_update_schedule
3090 PreReady - output_log
3100 PreReady - enable_open_ssh
5000 Windows is Ready to use
6000 PostReadyLocalData
7000 PostReadyUserData
6010/7010 PostReadyLocal/UserData - set_wallpaper
6020/7020 PostReadyLocal/UserData - set_update_schedule
6030/7030 PostReadyLocal/UserData - set_hostname
6040/7040 PostReadyLocal/UserData - execute_program
6050/7050 PostReadyLocal/UserData - execute_script
6060/7060 PostReadyLocal/UserData - manage_package
6070/7070 PostReadyLocal/UserData - initialize_volume
6080/7080 PostReadyLocal/UserData - write_file
6090/7090 PostReadyLocal/UserData - start_ssm
7100 PostReadyUserData - enable_open_ssh
6110/7110 PostReadyLocal/UserData - enable_jumbo_frames

EC2Launchkeluaran log konsol v2

Bagian ini berisi contoh keluaran log konsol untuk EC2Launch v2 dan mencantumkan semua pesan kesalahan log konsol EC2Launch v2 untuk membantu Anda memecahkan masalah. Untuk informasi selengkapnya tentang keluaran konsol instance dan cara mengaksesnya, lihatOutput konsol instans.

EC2Launchkeluaran log konsol v2

Berikut ini adalah contoh keluaran log konsol untuk EC2Launch v2.

2023/11/30 20:18:53Z: Windows sysprep configuration complete. 2023/11/30 20:18:57Z: Message: Waiting for access to metadata... 2023/11/30 20:18:57Z: Message: Meta-data is now available. 2023/11/30 20:18:57Z: AMI Origin Version: 2023.11.15 2023/11/30 20:18:57Z: AMI Origin Name: Windows_Server-2022-English-Full-Base 2023/11/30 20:18:58Z: OS: Microsoft Windows NT 10.0.20348 2023/11/30 20:18:58Z: OsVersion: 10.0 2023/11/30 20:18:58Z: OsProductName: Windows Server 2022 Datacenter 2023/11/30 20:18:58Z: OsBuildLabEx: 20348.1.amd64fre.fe_release.210507-1500 2023/11/30 20:18:58Z: OsCurrentBuild: 20348 2023/11/30 20:18:58Z: OsReleaseId: 2009 2023/11/30 20:18:58Z: Language: en-US 2023/11/30 20:18:58Z: TimeZone: UTC 2023/11/30 20:18:58Z: Offset: UTC +0000 2023/11/30 20:18:58Z: Launch: EC2 Launch v2.0.1643 2023/11/30 20:18:58Z: AMI-ID: ami-1234567890abcdef1 2023/11/30 20:18:58Z: Instance-ID: i-1234567890abcdef0 2023/11/30 20:18:58Z: Instance Type: c5.large 2023/11/30 20:19:00Z: Driver: AWS NVMe Driver v1.5.0.33 2023/11/30 20:19:00Z: SubComponent: AWS NVMe Driver v1.5.0.33; EnableSCSIPersistentReservations: 0 2023/11/30 20:19:00Z: Driver: AWS PV Driver Package v8.4.3 2023/11/30 20:19:01Z: Driver: Amazon Elastic Network Adapter v2.6.0.0 2023/11/30 20:19:01Z: RDPCERTIFICATE-SUBJECTNAME: EC2AMAZ-SO1T009 2023/11/30 20:19:01Z: RDPCERTIFICATE-THUMBPRINT: 1234567890ABCDEF1234567890ABCDEF1234567890 2023/11/30 20:19:09Z: SSM: Amazon SSM Agent v3.2.1705.0 2023/11/30 20:19:13Z: Username: Administrator 2023/11/30 20:19:13Z: Password: <Password> 1234567890abcdef1EXAMPLEPASSWORD </Password> 2023/11/30 20:19:14Z: User data format: no_user_data 2023/11/30 20:19:14Z: EC2LaunchTelemetry: IsTelemetryEnabled=true 2023/11/30 20:19:14Z: EC2LaunchTelemetry: AgentOsArch=windows_amd64 2023/11/30 20:19:14Z: EC2LaunchTelemetry: IsAgentScheduledPerBoot=true 2023/11/30 20:19:14Z: EC2LaunchTelemetry: AgentCommandErrorCode=0 2023/11/30 20:19:14Z: Message: Windows is Ready to use

EC2Launchpesan log konsol v2

Berikut ini adalah daftar semua pesan log konsol EC2Launch v2.

Message: Error EC2Launch service is stopping. {error message} Error setting up EC2Launch agent folders See instance logs for detail Error stopping service Error initializing service Message: Windows sysprep configuration complete Message: Invalid administrator username: {invalid username} Message: Invalid administrator password Username: {username} Password: <Password>{encrypted password}</Password> AMI Origin Version: {amiVersion} AMI Origin Name: {amiName} Microsoft Windows NT {currentVersion}.{currentBuildNumber} OsVersion: {currentVersion} OsProductName: {productName} OsBuildLabEx: {buildLabEx} OsCurrentBuild: {currentBuild} OsReleaseId: {releaseId} Language: {language} TimeZone: {timeZone} Offset: UTC {offset} Launch agent: EC2Launch {BuildVersion} AMI-ID: {amiId} Instance-ID: {instanceId} Instance Type: {instanceType} RDPCERTIFICATE-SUBJECTNAME: {certificate subject name} RDPCERTIFICATE-THUMBPRINT: {thumbprint hash} SqlServerBilling: {sql billing} SqlServerInstall: {sql patch leve, edition type} Driver: AWS NVMe Driver {version} Driver: Inbox NVMe Driver {version} Driver: AWS PV Driver Package {version} Microsoft-Hyper-V is installed. Unable to get service status for vmms Microsoft-Hyper-V is {status} SSM: Amazon SSM Agent {version} AWS VSS Version: {version} Message: Windows sysprep configuration complete Message: Windows is being configured. SysprepState is {state} Windows is still being configured. SysprepState is {state} Message: Windows is Ready to use Message: Waiting for meta-data accessibility... Message: Meta-data is now available. Message: Still waiting for meta-data accessibility... Message: Failed to find primary network interface...retrying... User data format: {format}