全部产品
Search
文档中心

CloudOps Orchestration Service:Buat dan perbarui citra kustom

更新时间:Jun 28, 2025

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.

  • Metode ini aman, andal, dan direkomendasikan secara resmi.

  • Operasi dilakukan secara online tanpa instalasi.

  • Template publik dengan kode bawaan tersedia.

  • Tidak memerlukan pasangan AccessKey.

  • Dukungan untuk pembuatan dan penggunaan template kustom.

  • Proses eksekusi divisualisasikan.

  • Dukungan untuk operasi batch dan terjadwal.

Tidak ada.

  • Membuat citra kustom menggunakan snapshot

  • Membuat citra kustom menggunakan instance ECS

Tidak diperlukan alat lainnya.

Operasi mudah dan nyaman di konsol ECS.

  • Memerlukan pembuatan instance dan snapshot secara manual.

  • Prosedur rumit, rentan kesalahan, dan tidak efisien.

Membuat citra kustom menggunakan Packer

Packer harus diinstal.

Alat open source yang didukung oleh berbagai penyedia layanan cloud.

  • Memerlukan instalasi dan pemeliharaan Packer.

  • Memerlukan penulisan kode.

Prosedur

  1. Masuk ke konsol CloudOps Orchestration Service.

  2. Di panel navigasi sebelah kiri, pilih Automated Task > Public Template.

  3. Di bagian Update Image, klik Create Execution.

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

  5. 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 Automated Task > Task Execution Management. 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:

  1. Periksa apakah nama citra baru valid.

  2. 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.

  3. Instal klien Cloud Assistant pada instance ECS sementara jika belum terinstal.

  4. Jalankan perintah Cloud Assistant untuk pembaruan citra pada instance ECS sementara, lalu tunggu hingga perintah selesai.

  5. Nonaktifkan instance ECS sementara.

  6. Buat citra untuk instance ECS sementara dan tunggu hingga pembuatan selesai.

  7. Lepaskan instance ECS sementara.