All Products
Search
Document Center

CloudOps Orchestration Service:Buat dan perbarui custom image

Last Updated:Sep 05, 2026

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.

  • Disarankan oleh Alibaba Cloud, aman, dan andal

  • Berbasis web; tidak perlu instalasi

  • Menggunakan templat resmi; tidak perlu coding

  • Tidak memerlukan pasangan Kunci Akses

  • Mendukung templat kustom

  • Pelacakan eksekusi visual

  • Mendukung operasi batch dan terjadwal

Tidak ada

  • Buat custom image dari snapshot

  • Buat custom image dari instans

Tidak ada dependensi lain

Mudah digunakan di Konsol ECS

  • Memerlukan pembuatan instans dan snapshot secara manual

  • Proses kompleks, rentan kesalahan, dan tidak efisien

Gunakan Packer untuk membuat custom image

Diperlukan instalasi Packer.

Sumber terbuka dengan dukungan multi-cloud

  • Diperlukan instalasi dan maintenance

  • Diperlukan penulisan skrip kustom

Prosedur

  1. Login ke konsol CloudOps Orchestration Service.

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

  3. Temukan templat Update Image dan klik Create an execution.

  4. Klik Next Step: Parameter Settings.

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

  1. Memeriksa apakah nama yang Anda tentukan untuk image baru tersedia.

  2. Membuat dan menjalankan instans sementara yang diluncurkan dari image sumber dan dikonfigurasi sesuai parameter yang Anda berikan.

  3. Menginstal klien Cloud Assistant pada instans sementara jika belum ada.

  4. Menjalankan perintah pembaruan pada instans sementara menggunakan Cloud Assistant dan menunggu hingga perintah berhasil selesai.

  5. Menghentikan instans sementara setelah perintah pembaruan selesai dieksekusi.

  6. Membuat custom image dari instans yang dihentikan dan menunggu hingga proses pembuatan selesai.

  7. Menghapus instans sementara.