Alibaba Cloud CLI adalah alat manajemen yang fleksibel dan dapat diperluas, dibangun di atas API Alibaba Cloud. Anda dapat menggunakannya untuk memanggil API dan mengelola resource Alibaba Cloud. Topik ini menjelaskan cara menggunakan Alibaba Cloud CLI untuk melakukan pembaruan bergulir.
Prasyarat
Alibaba Cloud CLI telah diinstal. Untuk informasi lebih lanjut, lihat panduan instalasi dalam dokumentasi Alibaba Cloud CLI.
Anda memiliki scaling group dengan instance ECS.
Untuk memperbarui image instance ECS dalam scaling group, grup tersebut harus menggunakan scaling configuration.
Untuk menginstal paket OOS pada instance ECS, Anda harus terlebih dahulu membuat paket tersebut di CloudOps Orchestration Service (OOS). Untuk informasi lebih lanjut, lihat Kelola ekstensi kustom secara batch.
Latar Belakang
Pembaruan bergulir memungkinkan Anda memperbarui beberapa instance ECS secara bertahap melalui satu task. Untuk informasi lebih lanjut, lihat Pembaruan bergulir.
Prosedur
Topik ini menunjukkan cara menggunakan Alibaba Cloud CLI untuk memperbarui image instance ECS dalam scaling group, menjalankan skrip pada instance ECS, dan menginstal paket OOS pada instance ECS.
Langkah 1: Buat RAM user dan tambahkan izin
Masuk ke RAM console.
Buat RAM user.
Dalam contoh ini, RAM user bernama clitest dibuat. Untuk informasi lebih lanjut, lihat Buat RAM user.
Di panel navigasi sebelah kiri, pilih .
Klik Create User.
Pada halaman Create User, tentukan pengaturan pengguna lalu klik OK.
Tabel berikut menjelaskan pengaturan contoh.
Parameter
Contoh
Logon Name
example@sample.com
Display name
example
Access Mode
Pilih Using permanent AccessKey to access.
Pasangan AccessKey secara otomatis dihasilkan untuk RAM user, yang dapat Anda gunakan untuk mengakses resource Alibaba Cloud dengan memanggil operasi API atau menggunakan tool pengembangan lainnya.
Pada halaman User Information, klik Download CSV File.
CatatanRahasia AccessKey hanya ditampilkan saat dibuat dan tidak dapat diambil kembali nanti. Simpan rahasia AccessKey Anda dengan aman. Jika pasangan AccessKey hilang atau dikompromikan, buat yang baru.
Berikan izin kepada RAM user untuk mengelola resource.
Di panel navigasi sebelah kiri, pilih .
Temukan RAM user clitest yang telah Anda buat dan klik Add Permissions di kolom Actions.
Pada halaman Add Permissions, pilih izin yang diperlukan untuk pembaruan bergulir lalu klik OK.
Tabel berikut menjelaskan pengaturan contoh.
Parameter
Contoh
Resource Range
Pertahankan nilai default Account.
Principal
Pertahankan nilai default example@sample.com.
Policies
Pilih kebijakan sistem berikut:
AliyunECSFullAccess: Memberikan izin untuk mengelola resource ECS, termasuk instance ECS.
AliyunESSFullAccess: Memberikan izin untuk mengelola resource Auto Scaling, termasuk scaling group.
AliyunOOSFullAccess: Memberikan izin untuk mengelola resource CloudOps Orchestration Service (OOS), termasuk eksekusi.
AliyunOSSFullAccess: Memberikan izin untuk mengelola resource Object Storage Service, termasuk bucket.
Langkah 2: Konfigurasikan dan verifikasi Alibaba Cloud CLI
Untuk informasi lebih lanjut tentang item konfigurasi, lihat bagian Konfigurasikan Alibaba Cloud CLI dalam dokumentasi Alibaba Cloud CLI.
Buka tool command-line di mesin lokal Anda.
Konfigurasikan Alibaba Cloud CLI.
Jalankan perintah berikut untuk membuka file konfigurasi.
aliyun configureMasukkan informasi seperti ID AccessKey dan Rahasia AccessKey sesuai permintaan.

Jalankan perintah berikut untuk memverifikasi konfigurasi Alibaba Cloud CLI Anda.
aliyun ecs DescribeRegionsPerintah ini menanyakan wilayah yang didukung. Jika daftar wilayah dikembalikan, konfigurasi sudah benar. Gambar berikut menunjukkan contoh output.

Langkah 3: Lakukan pembaruan bergulir
Langkah ini menyediakan perintah contoh untuk memperbarui image instance ECS dalam scaling group, menjalankan skrip pada instance ECS, dan menginstal paket OOS pada instance ECS.
Masukkan perintah Alibaba Cloud CLI untuk melakukan pembaruan bergulir.
Untuk informasi lebih lanjut tentang parameter templat OOS yang digunakan dalam kode contoh, lihat Parameter templat.
Contoh ini memperbarui image instance ECS dalam scaling group ke Alibaba Cloud Linux 2.1903 LTS 64-bit.
aliyun oos StartExecution --TemplateName ACS-ESS-RollingUpdateByReplaceSystemDiskInScalingGroup --Parameters "{ \"invokeType\": \"invoke\", \"scalingGroupId\": \"asg-bp18p2yfxow2dloq****\", \"scalingConfigurationId\": \"asc-bp1bx8mzur534edp****\", \"imageId\": \"aliyun_2_1903_x64_20G_alibase_20200529.vhd\", \"sourceImageId\": \"centos_7_8_x64_20G_alibase_20200717.vhd\", \"OOSAssumeRole\": \"\", \"enterProcess\": [ \"ScaleIn\", \"ScaleOut\", \"HealthCheck\", \"AlarmNotification\", \"ScheduledAction\" ], \"exitProcess\": [ \"ScaleIn\", \"ScaleOut\", \"HealthCheck\", \"AlarmNotification\", \"ScheduledAction\" ], \"batchNumber\": 2, \"batchPauseOption\": \"Automatic\" }"Perintah contoh berikut untuk eksekusi skrip menjalankan perintah Shell df -h dan ifconfig pada instance ECS dalam scaling group untuk melihat informasi konfigurasi disk dan jaringan instance.
aliyun oos StartExecution --TemplateName ACS-ESS-RollingUpdateByRunCommandInScalingGroup --Parameters "{ \"invokeType\": \"invoke\", \"scalingGroupId\": \"asg-bp18p2yfxow2dloq****\", \"commandType\": \"RunShellScript\", \"invokeScript\": \"df -h\nifconfig\", \"rollbackScript\": \"df -h\nifconfig\", \"OOSAssumeRole\": \"\", \"exitProcess\": [ \"ScaleIn\", \"ScaleOut\", \"HealthCheck\", \"AlarmNotification\", \"ScheduledAction\" ], \"enterProcess\": [ \"ScaleIn\", \"ScaleOut\", \"HealthCheck\", \"AlarmNotification\", \"ScheduledAction\" ], \"batchNumber\": 2, \"batchPauseOption\": \"Automatic\" }"Contoh ini menginstal paket WordPress yang dibuat di OOS pada instance ECS dalam scaling group.
aliyun oos StartExecution --TemplateName ACS-ESS-RollingUpdateByConfigureOOSPackage --Parameters "{ \"invokeType\": \"invoke\", \"scalingGroupId\": \"asg-bp18p2yfxow2dloq****\", \"packageName\": \"wordpress\", \"packageVersion\": \"v4\", \"action\": \"install\", \"OOSAssumeRole\": \"\", \"enterProcess\": [ \"ScaleIn\", \"ScaleOut\", \"HealthCheck\", \"AlarmNotification\", \"ScheduledAction\" ], \"exitProcess\": [ \"ScaleIn\", \"ScaleOut\", \"HealthCheck\", \"AlarmNotification\", \"ScheduledAction\" ], \"batchNumber\": 2, \"batchPauseOption\": \"Automatic\" }"
Lihat detail eksekusi.
Menjalankan perintah pembaruan bergulir secara otomatis membuat eksekusi OOS. Anda dapat menggunakan ID eksekusi yang dikembalikan untuk melihat detail, seperti hasil dan output. Contoh berikut menunjukkan cara mendapatkan ID eksekusi dan melihat detail eksekusi skrip.
Temukan ID eksekusi pembaruan bergulir dalam informasi yang dikembalikan.
Gambar berikut menunjukkan contoh ID eksekusi.

Jalankan perintah Alibaba Cloud CLI berikut untuk melihat detail eksekusi.
aliyun oos ListExecutions --ExecutionId exec-40e2e17ef7e04****Gambar berikut menunjukkan contoh detail eksekusi.

Rollback: Tangani pengecualian
Jika terjadi pengecualian selama pembaruan bergulir, atau jika Anda perlu mengembalikan ke konfigurasi sebelumnya, Anda dapat melakukan rollback. Rollback memulihkan konfigurasi asli instance ECS dalam scaling group. Langkah ini menyediakan perintah contoh untuk melakukan rollback pembaruan bergulir.
Temukan ID eksekusi pembaruan bergulir dalam informasi yang dikembalikan.
Gambar berikut menunjukkan contoh ID eksekusi.

Masukkan perintah Alibaba Cloud CLI untuk melakukan rollback.
Untuk informasi lebih lanjut tentang parameter templat OOS yang digunakan dalam kode contoh, lihat Parameter templat.
CatatanSaat Anda melakukan rollback, OOS secara otomatis menyaring instance ECS yang akan di-rollback dan menangguhkan serta melanjutkan proses penskalaan scaling group berdasarkan pembaruan bergulir. Hal ini memungkinkan Anda menghilangkan beberapa parameter tertentu.
Contoh ini melakukan rollback image instance ECS ke CentOS 7.8 64-bit.
aliyun oos StartExecution --TemplateName ACS-ESS-RollingUpdateByReplaceSystemDiskInScalingGroup --Parameters "{ \"invokeType\": \"rollback\", \"scalingGroupId\": \"asg-bp18p2yfxow2dloq****\", \"scalingConfigurationId\": \"asc-bp1bx8mzur534edp****\", \"sourceImageId\": \"centos_7_8_x64_20G_alibase_20200717.vhd\", \"sourceExecutionId\": \"exec-83dba59be77d430****\", \"OOSAssumeRole\": \"\", \"batchNumber\": 2, \"batchPauseOption\": \"Automatic\" }"Perintah contoh berikut mengeksekusi skrip rollback pada instance ECS. Contoh ini menggunakan perintah Shell df -h dan ifconfig. Anda dapat mengganti skrip sesuai kebutuhan.
aliyun oos StartExecution --TemplateName ACS-ESS-RollingUpdateByRunCommandInScalingGroup --Parameters "{ \"invokeType\": \"rollback\", \"commandType\": \"RunShellScript\", \"rollbackScript\": \"df -h\nifconfig\", \"scalingGroupId\": \"asg-bp18p2yfxow2dloq****\", \"sourceExecutionId\": \"exec-40e2e17ef7e046****\", \"OOSAssumeRole\": \"\", \"batchNumber\": 2, \"batchPauseOption\": \"Automatic\" }"Contoh ini melakukan rollback instalasi paket OOS dengan menginstal versi sebelumnya dari paket WordPress pada instance ECS.
aliyun oos StartExecution --TemplateName ACS-ESS-RollingUpdateByConfigureOOSPackage --Parameters "{ \"invokeType\": \"rollback\", \"scalingGroupId\": \"asg-bp18p2yfxow2dloq****\", \"packageVersion\": \"v3\", \"packageName\": \"wordpress\", \"sourceExecutionId\": \"exec-f4e61f2f21fe490****\", \"OOSAssumeRole\": \"\", \"batchNumber\": 2, \"batchPauseOption\": \"Automatic\" }"
Lihat detail eksekusi.
Saat Anda menjalankan perintah CLI untuk melakukan rollback, eksekusi juga secara otomatis dibuat di OOS. Anda juga dapat menggunakan metode yang dijelaskan dalam Langkah 3 untuk melihat detail eksekusi, seperti hasil dan output.
Parameter templat
Bagian ini menjelaskan parameter templat publik yang digunakan dalam contoh.
Tabel 1. Parameter ACS-ESS-RollingUpdateByReplaceSystemDiskInScalingGroup
Parameter | Deskripsi |
invokeType | Jenis task. Nilai yang valid:
|
scalingGroupId | ID scaling group target. |
scalingConfigurationId | ID scaling configuration aktif dalam scaling group. |
imageId | ID image baru untuk pembaruan. |
sourceImageId | ID image asli yang dipulihkan selama rollback. |
OOSAssumeRole | Peran RAM yang digunakan untuk menjalankan task. Nilai default: OOSServiceRole. |
enterProcess | Proses penskalaan yang ditangguhkan saat task dimulai. |
exitProcess | Proses penskalaan yang dilanjutkan saat task selesai. |
batchNumber | Jumlah batch untuk membagi instance ECS dalam task ini. Setiap batch harus berisi minimal satu instance. |
batchPauseOption | Pengaturan jeda untuk task. Nilai yang valid:
|
sourceExecutionId | ID eksekusi asli yang akan di-rollback. Parameter ini wajib diisi untuk rollback. |
Untuk detail parameter lebih lanjut, Anda juga dapat mengunjungi Konsol OOS. Untuk melihat deskripsi parameter di wilayah China (Hangzhou), lihat ACS-ESS-RollingUpdateByReplaceSystemDiskInScalingGroup.
Tabel 2. Parameter ACS-ESS-RollingUpdateByRunCommandInScalingGroup
Parameter | Deskripsi |
invokeType | Jenis task. Nilai yang valid:
|
scalingGroupId | ID scaling group target. |
commandType | Jenis skrip yang ingin Anda jalankan. Nilai RunShellScript menunjukkan skrip shell. |
invokeScript | Skrip yang ingin Anda jalankan pada instance ECS selama pembaruan bergulir. |
rollbackScript | Skrip yang ingin Anda jalankan pada instance ECS selama rollback. |
OOSAssumeRole | Peran RAM yang digunakan untuk menjalankan task. Nilai default: OOSServiceRole. |
enterProcess | Proses penskalaan ditangguhkan saat Tugas dimulai. |
exitProcess | Proses penskalaan yang dilanjutkan saat task selesai. |
batchNumber | Jumlah batch untuk membagi instance ECS dalam task ini. Setiap batch harus berisi minimal satu instance. |
batchPauseOption | Pengaturan jeda untuk task. Nilai yang valid:
|
sourceExecutionId | ID eksekusi asli yang akan di-rollback. Parameter ini wajib diisi untuk rollback. |
Untuk detail parameter lebih lanjut, Anda juga dapat mengunjungi Konsol OOS. Untuk melihat deskripsi parameter di wilayah China (Hangzhou), lihat ACS-ESS-RollingUpdateByRunCommandInScalingGroup.
Tabel 3. Parameter ACS-ESS-RollingUpdateByConfigureOOSPackage
Parameter | Deskripsi |
invokeType | Jenis tugas. Nilai yang valid:
|
scalingGroupId | ID scaling group target. |
packageName | Nama paket. |
packageVersion | Versi paket. |
action | Aksi yang dilakukan pada paket. Nilai yang valid:
Nilai default: install. |
OOSAssumeRole | Peran RAM yang digunakan untuk menjalankan task. Nilai default: OOSServiceRole. |
enterProcess | Proses penskalaan yang ditangguhkan saat task dimulai. |
exitProcess | Proses penskalaan yang dilanjutkan saat task selesai. |
batchNumber | Jumlah batch untuk membagi instance ECS dalam task ini. Setiap batch harus berisi minimal satu instance. |
batchPauseOption | Pengaturan jeda untuk task. Nilai yang valid:
|
sourceExecutionId | ID eksekusi asli yang akan di-rollback. Parameter ini wajib diisi untuk rollback. |
Untuk detail parameter lebih lanjut, Anda juga dapat mengunjungi Konsol OOS. Untuk melihat deskripsi parameter di wilayah China (Hangzhou), lihat ACS-ESS-RollingUpdateByConfigureOOSPackage.