Bagikan melalui


Jalankan skrip di VM Linux Anda dengan menggunakan tindakan Jalankan Perintah

Berlaku untuk: ✔️ Mesin Virtual Linux ✔️ Set skala fleksibel

Fitur Jalankan Perintah menggunakan agen komputer virtual (VM) untuk menjalankan skrip shell dalam Azure Linux VM. Anda dapat menggunakan skrip ini untuk manajemen komputer umum atau aplikasi. Mereka dapat membantu Anda dengan cepat mendiagnosis dan memulihkan akses VM dan masalah jaringan dan membuat VM kembali ke keadaan yang baik.

Keuntungan

Anda dapat mengakses komputer virtual Anda dengan berbagai cara. Jalankan Perintah dapat menjalankan skrip di komputer virtual Anda dari jarak jauh dengan menggunakan agen VM. Anda menggunakan Jalankan Perintah melalui portal Microsoft Azure, REST API, atau Azure CLI untuk VM Linux.

Kemampuan ini berguna dalam semua skenario di mana Anda ingin menjalankan skrip dalam komputer virtual. Ini adalah satu-satunya cara untuk memecahkan masalah dan memulihkan komputer virtual yang tidak membuka port RDP atau SSH karena konfigurasi pengguna jaringan atau administratif.

Prasyarat

Linux Distro didukung

Publisher Distribusi x64 ARM64
Komunitas Linux Alma Alma Linux 8.x+, 9.x+ 8.x+, 9.x+
Kreativitas Debian 10 tahun ke atas 11.x+
Kinvolk Flatcar Linux 3374.2.x+ 3374.2.x+
Microsoft Azure Linux 2.x 2.x
Proyek openSUSE openSUSE 12.3+ Tidak didukung
Oracle Oracle Linux 6.4+, 7.x+, 8.x+ Tidak didukung
Red Hat Red Hat Enterprise Linux 6.7+, 7.x+, 8.x+, 9.x+, 10.x+ 8.6+, 9.0+, 10.x+
CIQ Rocky Linux 9.x+ 9.x+
SUSE SLES 12.x+, 15.x+ 15.x SP4+
Canonical Ubuntu (rilis LTS) 18.04+, 20.04+, 22.04+, 24.04+ 20.04+, 22.04+, 24.04+

Pembatasan

Pembatasan berikut berlaku saat Anda menggunakan Jalankan Perintah:

  • Output dibatasi hingga 4.096 byte terakhir.
  • Waktu minimum untuk menjalankan skrip adalah sekitar 20 detik.
  • Skrip berjalan secara default sebagai pengguna yang ditingkatkan di Linux.
  • Anda dapat menjalankan satu skrip pada satu waktu.
  • Skrip yang meminta informasi (mode interaktif) tidak didukung.
  • Anda tidak dapat membatalkan skrip yang sedang berjalan.
  • Waktu maksimum skrip dapat berjalan adalah 90 menit. Setelah itu, skrip akan kehabisan waktu.
  • Konektivitas keluar dari VM diperlukan untuk mengembalikan hasil skrip.

Nota

Agar berfungsi dengan benar, Jalankan Perintah memerlukan konektivitas (port 443) ke alamat IP publik Azure. Jika ekstensi tidak memiliki akses ke titik akhir ini, skrip mungkin berjalan dengan sukses tetapi tidak mengembalikan hasilnya. Jika Anda memblokir lalu lintas di komputer virtual, Anda dapat menggunakan tag layanan untuk mengizinkan lalu lintas ke alamat IP publik Azure dengan menggunakan AzureCloud tag .

Perintah yang tersedia

Tabel ini memperlihatkan daftar perintah yang tersedia untuk VM Linux. Anda dapat menggunakan perintah RunShellScript untuk menjalankan skrip kustom apa pun yang Anda inginkan. Saat Anda menggunakan Azure CLI atau PowerShell untuk menjalankan perintah, nilai yang Anda berikan untuk --command-id parameter atau -CommandId harus menjadi salah satu nilai yang tercantum berikut ini. Saat Anda menentukan nilai yang bukan perintah yang tersedia, Anda menerima kesalahan ini:

The entity was not found in this Azure location
Nama Deskripsi Info Selengkapnya
RunShellScript Menjalankan skrip shell Linux.
ifconfig Mendapatkan konfigurasi semua antarmuka jaringan. readme

Azure CLI (antarmuka baris perintah Azure)

Contoh berikut menggunakan perintah az vm run-command untuk menjalankan skrip shell pada VM Linux Azure.

az vm run-command invoke -g myResourceGroup -n myVm --command-id RunShellScript --scripts "apt-get update && apt-get install -y nginx"

Nota

Untuk menjalankan perintah sebagai pengguna lain, masukkan sudo -u untuk menentukan akun pengguna.

portal Azure

Buka VM di portal Microsoft Azure dan pilih Jalankan perintah di menu sebelah kiri, di bawah Operasi. Anda melihat daftar perintah yang tersedia untuk dijalankan pada VM.

Daftar perintah

Pilih perintah untuk dijalankan. Beberapa perintah mungkin memiliki parameter input opsional atau diperlukan. Untuk perintah tersebut, parameter disajikan sebagai bidang teks bagi Anda untuk memberikan nilai input. Untuk setiap perintah, Anda dapat melihat skrip yang sedang dijalankan dengan memperluas Tampilkan skrip. RunShellScript berbeda dari perintah lain, karena memungkinkan Anda untuk menyediakan skrip kustom Anda sendiri.

Nota

Perintah bawaan tidak dapat diedit.

Setelah Anda memilih perintah, pilih Jalankan untuk menjalankan skrip. Setelah skrip selesai, skrip mengembalikan output dan kesalahan apa pun di jendela output. Cuplikan layar berikut menunjukkan contoh output dari menjalankan perintah ifconfig .

Jalankan output skrip perintah

PowerShell

Contoh berikut menggunakan cmdlet Invoke-AzVMRunCommand untuk menjalankan skrip PowerShell pada Azure VM. Cmdlet mengharapkan skrip yang dirujuk dalam -ScriptPath parameter menjadi lokal tempat cmdlet dijalankan.

Invoke-AzVMRunCommand -ResourceGroupName '<myResourceGroup>' -Name '<myVMName>' -CommandId 'RunShellScript' -ScriptPath '<pathToScript>' -Parameter @{"arg1" = "var1";"arg2" = "var2"}

Membatasi akses ke Jalankan Perintah

Mencantumkan perintah jalankan atau memperlihatkan detail perintah memerlukan Microsoft.Compute/locations/runCommands/read izin pada tingkat Langganan. Peran Pembaca bawaan dan tingkat yang lebih tinggi memiliki izin ini.

Menjalankan perintah memerlukan Microsoft.Compute/virtualMachines/runCommands/write izin. Peran Kontributor Komputer Virtual dan tingkat yang lebih tinggi memiliki izin ini.

Anda dapat menggunakan salah satu peran bawaan atau membuat peran kustom untuk menggunakan Jalankan Perintah.

Pemecahan masalah Action Run Command Linux

Saat memecahkan masalah perintah eksekusi tindakan untuk lingkungan Linux, lihat file log handler yang biasanya terletak di direktori berikut: /var/log/azure/run-command/handler.log untuk detail lebih lanjut.

Masalah yang diketahui

Log perintah eksekusi tindakan Linux memiliki beberapa perbedaan penting dibandingkan dengan perintah eksekusi tindakan log Windows:

  • Nomor urut dilaporkan dengan setiap baris log sebagai 'seq=#'
  • Tidak akan ada baris yang berisi Awaiting completion... karena ini akan dalam tindakan menjalankan perintah Windows saja.
  • Baris Command existed with code: # ini juga hanya ada dalam perintah eksekusi tindakan pengelogan Windows.

Penghapusan Perintah Eksekusi Tindakan

Jika perlu menghapus ekstensi Linux perintah eksekusi tindakan Anda, lihat langkah-langkah di bawah ini untuk Azure PowerShell dan CLI:

Ganti rgname dan vmname dengan nama grup sumber daya dan nama komputer virtual yang relevan dalam contoh penghapusan berikut.

 Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RemoveRunCommandLinuxExtension'
az vm run-command invoke  --command-id RemoveRunCommandLinuxExtension --name vmname -g rgname

Nota

Saat Anda menerapkan Perintah Jalankan lagi, ekstensi akan diinstal secara otomatis. Anda dapat menggunakan perintah penghapusan ekstensi untuk memecahkan masalah apa pun yang terkait dengan ekstensi.

Langkah selanjutnya

Untuk mempelajari tentang cara lain untuk menjalankan skrip dan perintah dari jarak jauh di VM Anda, lihat Menjalankan skrip di VM Linux Anda.