Jika Anda menggunakan custom image, Anda harus selalu memperbaruinya untuk memastikan keamanan. Pembaruan rutin mencakup instalasi patch sistem operasi (OS) terbaru, peningkatan middleware, serta penambahan versi terbaru perangkat lunak pihak ketiga. Templat publik dari OOS membantu Anda mengotomatiskan pembaruan image dan mengurangi biaya operasional.
Cara kerja
OOS menyediakan templat publik yang sepenuhnya mengotomatiskan proses pembaruan image. Untuk memulai, pilih OOS, masukkan parameter yang diperlukan seperti perintah Shell untuk instans Linux, lalu buat eksekusi untuk menghasilkan image baru. Dengan ECS, Anda tidak perlu menginstal alat tambahan, mengelola siklus hidup instans OOS (pembuatan, login, modifikasi, dan rilis), atau mengonfigurasi variabel lingkungan dan pasangan Kunci Akses. Anda juga dapat menyesuaikan templat OOS untuk menjadwalkan pembaruan otomatis atau memperbarui image secara batch.
Perbandingan metode pembaruan image lainnya
|
Metode |
Alat dan dependensi |
Kelebihan |
Kekurangan |
|
Gunakan OOS untuk membuat dan memperbarui custom image |
Aktifkan OOS. Tidak ada dependensi lain. |
|
Tidak ada |
|
Tidak ada dependensi lain |
Mudah digunakan di Konsol ECS |
|
|
Gunakan Packer untuk membuat custom image |
Diperlukan instalasi Packer. |
Sumber terbuka dengan dukungan multi-cloud |
|
Prosedur
-
Login ke konsol CloudOps Orchestration Service.
-
Di panel navigasi sebelah kiri, pilih .
-
Temukan templat Update Image dan klik Create an execution.

-
Klik Next Step: Parameter Settings.

-
Konfigurasikan parameter berikut.
-
Select Source Image: Pilih image sumber yang akan diperbarui.
-
Image Settings: Tentukan nama dan tag untuk image baru.
-
Transit Instance Settings: Konfigurasikan tipe instans dan pengaturan lain untuk ECS.
-
Update Image Configuration: Tentukan metode pembaruan, tipe perintah, dan konten skrip.
-
Advanced Options: Secara default, OOS melakukan aksi menggunakan izin pengguna saat ini. Jika Anda menentukan OOS, OOS akan mengasumsikan role ini untuk melakukan aksi tersebut.

-
-
Klik Next Step: Confirm, lalu klik Confirm and Create.

-
Buka untuk melihat eksekusi yang baru saja Anda buat. Jika status eksekusi adalah Running, pembaruan image sedang berlangsung.

-
Saat status eksekusi berubah menjadi Success, pembaruan image telah selesai. Anda dapat menemukan ID image baru di halaman detail eksekusi.

-
Untuk mempelajari lebih lanjut tentang proses pembaruan, Anda dapat mengklik Details pada eksekusi tersebut dan melihat tab Execution Logs untuk memantau progres dan status secara real time.
Lampiran 1: Templat publik dan logika
Berikut ini adalah isi dari templat publik ACS-ECS-UpdateImage:
FormatVersion: OOS-2019-06-01
Description: Updates an existing ECS image via ECS Cloud Assistant then creates a
ECS image.
Parameters:
sourceImageId:
Description: The image ID for the ECS instances, centos_6_10_64_20G_alibase_20190326.vhd,
for example.
Type: String
AllowedPattern: '[A-Za-z0-9_\-\.]*'
MinLength: 1
MaxLength: 40
instanceType:
Description: The instance type for the ECS instances, ecs.g5.large, for example.
Type: String
AllowedPattern: ecs\.[A-Za-z0-9\.\-]*
MinLength: 1
MaxLength: 30
securityGroupId:
Description: The security group ID for the ECS instances, sg-xxxxxxxxxxxxxxxxxxxx,
for example.
Type: String
AllowedPattern: sg-[A-Za-z0-9]*
MinLength: 1
MaxLength: 30
vSwitchId:
Description: The virtual switch ID for the ECS instances, vsw-xxxxxxxxxxxxxxxxxxxx,
for example.
Type: String
AllowedPattern: vsw-[A-Za-z0-9]*
MinLength: 1
MaxLength: 30
commandContent:
Description: The content of command.
Type: String
commandType:
Description: The type of command to run in ECS instance.
Type: String
AllowedValues:
- RunBatScript
- RunPowerShellScript
- RunShellScript
MinLength: 1
MaxLength: 30
targetImageName:
Description: The name of image.
Type: String
AllowedPattern: '[A-Za-z0-9\-_]*'
MinLength: 1
MaxLength: 30
OOSAssumeRole:
Description: The RAM role to be assumed by OOS.
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: checkNewImageName
Action: ACS::CheckFor
Description: Check image name is available.
Properties:
Service: ECS
API: DescribeImages
Parameters:
ImageName: '{{ targetImageName }}'
DesiredValues:
- 0
PropertySelector: TotalCount
- Name: runInstances
Action: ACS::ECS::RunInstances
Description: Create a ECS instance for the cloud assistant.
Properties:
imageId: '{{ sourceImageId }}'
instanceType: '{{ instanceType }}'
securityGroupId: '{{ securityGroupId }}'
vSwitchId: '{{ vSwitchId }}'
Outputs:
instanceId:
ValueSelector: instanceIds[0]
Type: String
- Name: installCloudAssistant
Action: ACS::ECS::InstallCloudAssistant
Description: Install cloud assostant for ECS instance.
OnError: deleteInstance
Properties:
instanceId: '{{ runInstances.instanceId }}'
- Name: runCommand
Action: ACS::ECS::RunCommand
Description: Run command on ECS instance.
OnError: deleteInstance
Properties:
commandContent: '{{ commandContent }}'
commandType: '{{ commandType }}'
instanceId: '{{ runInstances.instanceId }}'
- Name: stopInstance
Action: ACS::ECS::StopInstance
Description: Stops the ECS instance by the instance ID.
Properties:
instanceId: '{{ runInstances.instanceId }}'
- Name: createImage
Action: ACS::ECS::CreateImage
Description: Create image with the specified image name and instance ID.
OnError: deleteInstance
Properties:
imageName: '{{ targetImageName }}'
instanceId: '{{ runInstances.instanceId }}'
Outputs:
imageId:
ValueSelector: imageId
Type: String
- Name: deleteInstance
Action: ACS::ExecuteAPI
Description: Deletes the ECS instance by the instance ID.
Properties:
Service: ECS
API: DeleteInstance
Risk: Normal
Parameters:
InstanceId: '{{ runInstances.instanceId }}'
Force: true
Outputs:
imageId:
Type: String
Value: '{{ createImage.imageId }}'
Templat ini melakukan tugas-tugas berikut:
-
Memeriksa apakah nama yang Anda tentukan untuk image baru tersedia.
-
Membuat dan menjalankan instans sementara yang diluncurkan dari image sumber dan dikonfigurasi sesuai parameter yang Anda berikan.
-
Menginstal klien Cloud Assistant pada instans sementara jika belum ada.
-
Menjalankan perintah pembaruan pada instans sementara menggunakan Cloud Assistant dan menunggu hingga perintah berhasil selesai.
-
Menghentikan instans sementara setelah perintah pembaruan selesai dieksekusi.
-
Membuat custom image dari instans yang dihentikan dan menunggu hingga proses pembuatan selesai.
-
Menghapus instans sementara.