Untuk memastikan keamanan citra kustom Anda, penting untuk segera memperbaruinya. Ini mencakup instalasi patch terbaru sistem operasi, peningkatan middleware, serta instalasi versi terbaru perangkat lunak pihak ketiga dalam citra. Anda dapat menggunakan template publik yang disediakan oleh CloudOps Orchestration Service (OOS) untuk pembaruan otomatis citra, membantu mengurangi biaya operasional.
Solusi
OOS menyediakan template publik untuk Anda memperbarui citra kustom. Setelah Anda membuat eksekusi berdasarkan template, OOS secara otomatis memperbarui citra Anda. Untuk menggunakan OOS guna memperbarui citra kustom, Anda hanya perlu memilih citra sumber yang akan diperbarui, menentukan parameter yang diperlukan seperti perintah shell untuk memperbarui citra instance Linux, lalu klik Buat Eksekusi. Tidak diperlukan alat tambahan untuk pembaruan citra dengan menggunakan OOS. Selain itu, Anda tidak perlu secara manual membuat, masuk ke, mengedit, atau melepaskan instance Elastic Compute Service (ECS), atau mengonfigurasi variabel lingkungan atau pasangan AccessKey. OOS juga memungkinkan Anda membuat template kustom untuk menjadwalkan pembaruan citra otomatis atau memperbarui beberapa citra secara batch.
Perbandingan metode berbeda untuk membuat dan memperbarui citra kustom
Metode | Persyaratan | Keuntungan | Kerugian |
Membuat dan memperbarui citra kustom menggunakan OOS | Hanya perlu mengaktifkan OOS. Tidak diperlukan alat lainnya. |
| Tidak ada. |
| Tidak diperlukan alat lainnya. | Operasi mudah dan nyaman di konsol ECS. |
|
Membuat citra kustom menggunakan Packer | Packer harus diinstal. | Alat open source yang didukung oleh berbagai penyedia layanan cloud. |
|
Prosedur
Masuk ke konsol CloudOps Orchestration Service.
Di panel navigasi sebelah kiri, pilih .
Di bagian Update Image, klik Create Execution.

Di halaman Buat Tugas, konfigurasikan parameter pada langkah Informasi Dasar, lalu klik Next Step: Parameter Settings.

Di langkah Pengaturan Parameter, konfigurasikan parameter berikut:
Di bagian Pilih Citra Asal, tentukan citra sumber yang akan diperbarui.
Di bagian Konfigurasi Citra, tentukan nama dan tag citra baru setelah pembaruan.
Di bagian Konfigurasi Instance ECS, tentukan tipe dan spesifikasi instance ECS sementara yang digunakan untuk pembaruan citra.
Di bagian Konfigurasi Pembaruan Citra, tentukan metode pembaruan, tipe perintah, dan skrip perintah.
Di bagian Opsi Kontrol, opsi Gunakan Izin yang Ada dari Akun Saat Ini dipilih secara default, menunjukkan bahwa OOS menggunakan izin akun saat ini. Jika peran RAM ditentukan, OOS mengasumsikan peran tersebut untuk melaksanakan tugas operasional.

Klik Next Step: OK. Di langkah OK, periksa operasi berisiko tinggi dan klik Create.

Di panel navigasi sebelah kiri, pilih . Di halaman Manajemen Eksekusi Tugas, temukan eksekusi yang telah dibuat. Jika statusnya Berjalan, pembaruan citra sedang berlangsung.

Tunggu hingga status eksekusi menjadi Sukses. Ini menunjukkan bahwa citra telah diperbarui. ID citra baru dapat dilihat di halaman detail eksekusi.

Untuk melihat proses pembaruan citra, klik Details di kolom Aksi eksekusi yang dibuat. Di tab Execution Logs, Anda dapat melihat kemajuan dan status eksekusi.
Lampiran 1: Template publik dan logika
Template publik ACS-ECS-UpdateImage berisi kode berikut:
FormatVersion: OOS-2019-06-01
Description: Memperbarui citra ECS yang ada melalui Asisten Cloud ECS lalu membuat citra ECS.
Parameters:
sourceImageId:
Description: ID citra untuk instance ECS, contohnya centos_6_10_64_20G_alibase_20190326.vhd.
Type: String
AllowedPattern: '[A-Za-z0-9_\-\.]*'
MinLength: 1
MaxLength: 40
instanceType:
Description: Tipe instance untuk instance ECS, contohnya ecs.g5.large.
Type: String
AllowedPattern: ecs\.[A-Za-z0-9\.\-]*
MinLength: 1
MaxLength: 30
securityGroupId:
Description: ID grup keamanan untuk instance ECS, contohnya sg-xxxxxxxxxxxxxxxxxxxx.
Type: String
AllowedPattern: sg-[A-Za-z0-9]*
MinLength: 1
MaxLength: 30
vSwitchId:
Description: ID switch virtual untuk instance ECS, contohnya vsw-xxxxxxxxxxxxxxxxxxxx.
Type: String
AllowedPattern: vsw-[A-Za-z0-9]*
MinLength: 1
MaxLength: 30
commandContent:
Description: Isi perintah.
Type: String
commandType:
Description: Jenis perintah untuk dijalankan di instance ECS.
Type: String
AllowedValues:
- RunBatScript
- RunPowerShellScript
- RunShellScript
MinLength: 1
MaxLength: 30
targetImageName:
Description: Nama citra.
Type: String
AllowedPattern: '[A-Za-z0-9\-_]*'
MinLength: 1
MaxLength: 30
OOSAssumeRole:
Description: Peran RAM yang diasumsikan oleh OOS.
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: checkNewImageName
Action: ACS::CheckFor
Description: Periksa apakah nama citra baru tersedia.
Properties:
Service: ECS
API: DescribeImages
Parameters:
ImageName: '{{ targetImageName }}'
DesiredValues:
- 0
PropertySelector: TotalCount
- Name: runInstances
Action: ACS::ECS::RunInstances
Description: Buat instance ECS untuk asisten cloud.
Properties:
imageId: '{{ sourceImageId }}'
instanceType: '{{ instanceType }}'
securityGroupId: '{{ securityGroupId }}'
vSwitchId: '{{ vSwitchId }}'
Outputs:
instanceId:
ValueSelector: instanceIds[0]
Type: String
- Name: installCloudAssistant
Action: ACS::ECS::InstallCloudAssistant
Description: Instal klien asisten cloud untuk instance ECS.
OnError: deleteInstance
Properties:
instanceId: '{{ runInstances.instanceId }}'
- Name: runCommand
Action: ACS::ECS::RunCommand
Description: Jalankan perintah pada instance ECS.
OnError: deleteInstance
Properties:
commandContent: '{{ commandContent }}'
commandType: '{{ commandType }}'
instanceId: '{{ runInstances.instanceId }}'
- Name: stopInstance
Action: ACS::ECS::StopInstance
Description: Menghentikan instance ECS berdasarkan ID instance.
Properties:
instanceId: '{{ runInstances.instanceId }}'
- Name: createImage
Action: ACS::ECS::CreateImage
Description: Buat citra dengan nama citra dan ID instance tertentu.
OnError: deleteInstance
Properties:
imageName: '{{ targetImageName }}'
instanceId: '{{ runInstances.instanceId }}'
Outputs:
imageId:
ValueSelector: imageId
Type: String
- Name: deleteInstance
Action: ACS::ExecuteAPI
Description: Menghapus instance ECS berdasarkan ID instance.
Properties:
Service: ECS
API: DeleteInstance
Risk: Normal
Parameters:
InstanceId: '{{ runInstances.instanceId }}'
Force: true
Outputs:
imageId:
Type: String
Value: '{{ createImage.imageId }}' Template ini menjalankan tugas-tugas berikut secara berurutan:
Periksa apakah nama citra baru valid.
Buat dan jalankan instance ECS sementara. Instance dibuat berdasarkan parameter yang ditentukan, dengan citra sumber sebagai dasar dan atribut instance sesuai dengan parameter yang diberikan.
Instal klien Cloud Assistant pada instance ECS sementara jika belum terinstal.
Jalankan perintah Cloud Assistant untuk pembaruan citra pada instance ECS sementara, lalu tunggu hingga perintah selesai.
Nonaktifkan instance ECS sementara.
Buat citra untuk instance ECS sementara dan tunggu hingga pembuatan selesai.
Lepaskan instance ECS sementara.