全部产品
Search
文档中心

CloudOps Orchestration Service:Jalankan perintah pada beberapa Instance ECS secara Batches

更新时间:Jul 06, 2025

Jalankan perintah pada beberapa Instance ECS secara batch.

Informasi latar belakang

Anda dapat menjalankan perintah secara remote pada beberapa instance Elastic Compute Service (ECS). Ini merupakan salah satu operasi pemeliharaan dan pengoperasian (O&M) yang paling umum. Sebagai contoh, Anda dapat menjalankan perintah untuk menginstal atau menghapus perangkat lunak, atau memulai atau menghentikan proses pada Instance ECS. Dalam banyak kasus, Anda mungkin perlu menjalankan perintah yang sama pada beberapa Instance ECS dan menggabungkan hasil eksekusi.

Sebagai contoh, Anda dapat menerapkan fitur ini ke aplikasi bisnis. Anda dapat menjalankan perintah yang diperlukan untuk memperbarui lingkungan runtime dan kode pelanggan melalui pembaruan bergulir. Hal ini meningkatkan keandalan penyebaran aplikasi.

Anda dapat terhubung secara remote ke Instance ECS melalui Secure Shell (SSH). Namun, ini dapat menciptakan risiko potensial setelah Anda mengaktifkan akses ke port SSH dari sebuah Instance ECS melalui Internet. Untuk memperbaiki masalah keamanan, Anda dapat membuat jump server dan mengakses Instance ECS melalui jump server tersebut. Namun, ini dapat meningkatkan kompleksitas dan biaya.

Ansible adalah alat O&M open source populer di industri. Anda dapat menggunakan Ansible untuk akses remote. Namun, metode autentikasi independen dari sistem akun Alibaba Cloud. Akibatnya, Anda tidak dapat menggunakan alat Alibaba Cloud untuk mengontrol akses. Selain itu, catatan operasional Ansible tidak dapat diaudit oleh Alibaba Cloud.

Jika Anda menggunakan Instance ECS Windows, Anda dapat menjalankan perintah secara remote dengan menggunakan PowerShell. Namun, ini menciptakan tantangan signifikan saat Anda mengonfigurasi atau memelihara Instance ECS tersebut.

Untuk memperbaiki masalah-masalah sebelumnya, kami menyarankan agar Anda mengintegrasikan Alibaba Cloud OOS dengan Cloud Assistant. Integrasi ini memungkinkan Anda menjalankan perintah dalam batch pada beberapa Instance ECS. Cloud Assistant menyediakan sejumlah fitur atomik yang digunakan untuk menjalankan perintah pada Instance ECS. OOS juga menyediakan berbagai fitur. Fitur-fitur ini memungkinkan Anda mengelola tugas O&M yang dijadwalkan dan didorong oleh acara, memproses beberapa tugas O&M sekaligus, dan membuat template kustom untuk tugas O&M. Integrasi ini memberikan metode yang aman, mudah, dan efisien untuk melakukan tugas O&M pada Instance ECS.

Persiapan

Pastikan bahwa Command Line Interface (CLI) Alibaba Cloud versi 3.0.19 atau lebih baru telah diinstal dan dikonfigurasi. Untuk mengunduh paket instalasi CLI Alibaba Cloud dari GitHub, kunjungi https://github.com/aliyun/aliyun-cli/releases. Untuk informasi lebih lanjut tentang konfigurasi, lihat Konfigurasi Interaktif (Cepat).

Jalankan template publik

Buka shell lokal dan jalankan perintah berikut untuk menjalankan perintah echo 123 secara remote pada Instance ECS Linux i-id45678zxcvb dan i-id45679zxcvb yang berada di wilayah China (Beijing):

aliyun oos StartExecution --region cn-hangzhou --TemplateName ACS-ECS-BulkyRunCommand --Parameters '{"commandType":"RunShellScript", "commandContent":"echo 123",  "targets":{"Type":"ResourceIds", "ResourceIds":["i-id45678zxcvb","i-id45679zxcvb"]}, "rateControl":{"maxErrors":0,"mode":"Concurrency"}, "OOSAssumeRole":"" }'

Dalam perintah sebelumnya, operasi StartExecution dipanggil untuk menjalankan template publik ACS-ECS-BulkyRunCommand yang mencakup parameter ResourceIds dan commandContent. Jika "ExecutionId":"exec-xxxxx" muncul dalam hasil berformat JSON, itu menunjukkan bahwa perintah sedang diproses. Catat nilai parameter ExecutionId dan tentukan nilainya dalam perintah ListExecutions berikut untuk menanyakan kemajuan dan hasil:

aliyun oos ListExecutions --region cn-hangzhou --ExecutionId "exec-id123456zxcvb"

Jika perintah sedang diproses, nilai yang mirip dengan Running akan muncul dalam parameter Status dari hasil. Nilai parameter TotalTasks menunjukkan jumlah total perintah. Nilai parameter SuccessTasks menunjukkan jumlah perintah yang berhasil. Perbedaan antara kedua nilai tersebut menunjukkan jumlah perintah yang tertunda.

{
	"Execution": {
		"Outputs": {},
		"TemplateName": "ACS-ECS-BulkyRunCommand",
		"Parameters": {
			"commandType": "RunShellScript",
			"OOSAssumeRole": "",
			"rateControl": {
				"maxErrors": 0,
				"mode": "Concurrency"
			},
			"targets": {
				"ResourceIds": [
					"i-id45678zxcvb","i-id45679zxcvb"
				],
				"Type": "ResourceIds"
			},
			"commandContent": "echo 123"
		},
		"Counters": {
			"Failed": 0,
			"Success": 0,
			"Total": 0
		},
		"ExecutedBy": "aliyun-account1",
		"LoopMode": "Automatic",
		"Mode": "Automatic",
		"TemplateId": "t-123456zxcvb",
		"Status": "Running",
		"TemplateVersion": "v2",
		"SafetyCheck": "Skip",
		"StartDate": "2019-10-15T07:22:03Z",
		"ExecutionId": "exec-id123456zxcvb",
		"CurrentTasks": []
	},
	"RequestId": "1A9B1817-0530-470C-8640-BADADADB220BD"
}

Anda dapat menjalankan perintah ListExecutions beberapa kali hingga hasil akhir muncul dalam nilai parameter Outputs. Gambar berikut menunjukkan hasil akhir dari contoh ini.

Buat template kustom

Anda dapat membuat dan menjalankan template kustom di mana parameter yang diperlukan ditentukan. Ini menyederhanakan proses menjalankan perintah. Tambahkan kode berikut ke template kustom. Anda dapat menyesuaikan template berdasarkan kebutuhan bisnis Anda.

aliyun oos CreateTemplate --region cn-hangzhou --TemplateName sample123 --Content '{
"FormatVersion": "OOS-2019-06-01",
"Tasks": [
{
"Name": "runCommand",
"Action": "ACS::ECS::RunCommand",
"Properties": {
"commandContent": "echo 1234",
"instanceId": "{{ ACS::TaskLoopItem }}",
"commandType": "RunShellScript"
},
"Loop": {
"Items": ["i-id45678zxcvb","i-id45679zxcvb"],
"Outputs": {
"commandOutputs": {
"AggregateType": "Fn::ListJoin",
"AggregateField": "commandOutput"
}
}
},
"Outputs": {
"commandOutput": {
"Type": "String",
"ValueSelector": "invocationOutput"
}
}
}
],
"Outputs": {
"commandOutputs": {
"Type": "List",
"Value": "{{ runCommand.commandOutputs }}"
}
}
}'		

Setelah template kustom dibuat, jalankan perintah berikut untuk mengeksekusi template:

aliyun oos StartExecution --region cn-hangzhou --TemplateName sample123 --Parameters '{}'		

Dalam contoh ini, operasi StartExecution dipanggil untuk mengeksekusi template kustom sample123. Anda tidak perlu menyetel parameter tambahan. Operasi sebelumnya dilakukan dengan menjalankan perintah di CLI. Anda juga dapat melakukan operasi ini di konsol OOS.

Pelajari lebih lanjut

Alibaba Cloud OOS adalah platform O&M otomatis. Anda dapat menggunakan OOS untuk mengelola tugas O&M yang dijadwalkan, didorong oleh acara, dan lintas wilayah. Anda juga dapat menggunakan OOS untuk memproses beberapa tugas O&M sekaligus. OOS memungkinkan Anda menjalankan perintah pada Instance ECS. Selain itu, Anda dapat menggunakan OOS untuk melakukan operasi yang diperlukan. Sebagai contoh, Anda dapat membuat, melepaskan, memulai, atau menghentikan Instance ECS, memodifikasi konfigurasi dan meningkatkan lebar pita jaringan untuk Instance ECS, atau melampirkan disk ke Instance ECS. Untuk mendapatkan informasi lebih lanjut tentang OOS, bergabunglah dengan grup DingTalk untuk menghubungi layanan pelanggan OOS. Nomor grup DingTalk adalah 23330931. OOS menawarkan dukungan online di grup.

Untuk masuk ke konsol OOS, kunjungi https://oos.console.alibabacloud.com.