全部产品
Search
文档中心

Resource Orchestration Service:Gunakan pemetaan untuk mengotomatiskan konfigurasi repositori YUM untuk sistem CentOS

更新时间:Jul 06, 2025

Saat membuat sistem CentOS, Anda perlu mengonfigurasi repositori YUM secara manual untuk menginstal perangkat lunak umum. Repositori YUM adalah kumpulan paket perangkat lunak, dan versi CentOS yang berbeda memerlukan repositori YUM yang berbeda. Resource Orchestration Service (ROS) memungkinkan Anda mengotomatiskan konfigurasi repositori YUM untuk berbagai versi CentOS dengan membuat tumpukan berdasarkan templat yang mendefinisikan pemetaan.

Langkah 1: Buat templat

Pemetaan didefinisikan dalam templat berikut. Pemetaan ini mencakup URL repositori YUM untuk beberapa versi CentOS. Saat membuat instance Elastic Compute Service (ECS) dan menginisialisasi sistem untuk instance tersebut, fungsi Fn::FindInMap akan mengembalikan URL repositori YUM yang sesuai dengan versi gambar yang ditentukan oleh InstanceImageId.

ROSTemplateFormatVersion: '2015-09-01'
Description: Membuat instance sistem ECS Centos, dan mengatur repositori yum.
Metadata:
  ALIYUN::ROS::Interface:
    ParameterGroups:
      - Parameters:
          - VSwitchZoneId
          - InstanceImageId
          - InstanceType
          - SystemDiskSize
          - InstancePublicIP
          - InstancePassword
          - SystemDiskCategory
        Label:
          default: ECS
    TemplateTags:
      - Membuat instance VPC ECS
Parameters:
  SystemDiskCategory:
    Type: String
    Label:
      en: Tipe Disk Sistem
       
    Description:
      en: '<font color=''blue''></font>[cloud_efficiency: <font color=''green''>Disk Awan Efisien</font>]<br>[cloud_ssd: <font color=''green''>Disk SSD Awan</font>]<br>[cloud_essd: <font color=''green''>Disk ESSD Awan</font>]<br>[cloud: <font color=''green''>Disk Awan</font>]<br>[ephemeral_ssd: <font color=''green''>Disk SSD Lokal</font>]'
       
    AllowedValues:
      - cloud_efficiency
      - cloud_ssd
      - cloud
      - cloud_essd
      - ephemeral_ssd
    Default: cloud_ssd
  InstanceImageId:
    Type: String
    Default: centos_7
    AllowedValues:
      - centos_6
      - centos_7
      - centos_8
    Description:
       
      en: ID Gambar, mendukung [centos_6,centos_7,centos_8]
    Label:
       
      en: Gambar
  InstanceType:
    Type: String
    Description:
       
      en: 'Tipe instance. Tipe instance harus tersedia di zona tempat vSwitch berada.</font>Tipe instance umum: <font color='red'><b>ecs.c5.large.</font>Catatan: Tipe instance umum mungkin tidak tersedia di zona tertentu.<br>Untuk informasi lebih lanjut, lihat <a href=''https://www.alibabacloud.com/help/en/doc-detail/25378.html'' target=''_blank''><b><font color=''blue''>Ikhtisar keluarga instance</font></a>.'
    Label:
       
      en: Tipe Instance
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: VSwitchZoneId
  InstancePassword:
    NoEcho: true
    Type: String
    Description:
      en: Kata sandi login server, Panjang 8-30, harus mencakup tiga (Huruf kapital, huruf kecil, angka, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Simbol khusus).
        
    AllowedPattern: '[0-9A-Za-z\_\-\&:;''<>,=%`~!@#\(\)\$\^\*\+\|\{\}\[\]\.\?\/]+$'
    Label:
      en: Kata Sandi Instance
       
    ConstraintDescription:
      en: Panjang 8-30, harus mencakup tiga (Huruf kapital, huruf kecil, angka, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Simbol khusus).
       
    MinLength: 8
    MaxLength: 30
  InstancePublicIP:
    Type: Boolean
    Description:
       
      en: Apakah akan menetapkan IP publik biasa.
    Label:
       
      en: Tetapkan IP Publik
    Default: false
  VSwitchZoneId:
    AssociationProperty: ALIYUN::ECS::Instance:ZoneId
    Type: String
    Description:
        
      en: ID Zona.<b>Catatan:<font color='blue'>Sebelum Anda menentukan ID zona, periksa apakah spesifikasi instance ECS tersedia di zona tersebut. Kami merekomendasikan Anda memilih zona di mana vSwitch yang Anda tentukan tidak berada.</font>
    Label:
       
      en: Zona Ketersediaan VSwitch
  SystemDiskSize:
    Default: 40
    Type: Number
    Description:
       
      en: 'Ukuran disk sistem, rentang nilai: 40-500, satuan: GB.'
    Label:
       
      en: Ruang Disk Sistem
Mappings:
  YumMap:
    centos_6:
      YumSource: http://mirrors.aliyun.com/repo/Centos-6.repo
    centos_7:
      YumSource: http://mirrors.aliyun.com/repo/Centos-7.repo
    centos_8:
      YumSource: http://mirrors.aliyun.com/repo/Centos-8.repo
Resources:
  RosConditionHandle:
    Type: ALIYUN::ROS::WaitConditionHandle
  RosWaitCondition:
    Type: ALIYUN::ROS::WaitCondition
    DependsOn: EcsInstance
    Properties:
      Timeout: 1800
      Count: 1
      Handle:
        Ref: RosConditionHandle
  EcsVSwitch:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      VpcId:
        Ref: EcsVpc
      ZoneId:
        Ref: VSwitchZoneId
      CidrBlock: 192.168.0.0/24
  EcsInstance:
    Type: ALIYUN::ECS::Instance
    Properties:
      UserData:
        Fn::Sub:
          - |
            #!/bin/bash
            mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
            curl -o /etc/yum.repos.d/CentOS-Base.repo ${yum_repo}
            yum clean all
            yum makecache
            ${ros-notify} -d '{"data" : "Instalasi Centos berhasil."}'
          - ros-notify:
              Fn::GetAtt:
                - RosConditionHandle
                - CurlCli
            yum_repo:
              Fn::FindInMap:
                - YumMap
                - Ref: InstanceImageId
                - YumSource
      IoOptimized: optimized
      PrivateIpAddress: 192.168.0.1
      VpcId:
        Ref: EcsVpc
      SecurityGroupId:
        Ref: EcsSecurityGroup
      VSwitchId:
        Ref: EcsVSwitch
      ImageId:
        Ref: InstanceImageId
      AllocatePublicIP:
        Ref: InstancePublicIP
      InstanceType:
        Ref: InstanceType
      SystemDiskSize:
        Ref: SystemDiskSize
      SystemDiskCategory:
        Ref: SystemDiskCategory
      Password:
        Ref: InstancePassword
  EcsSecurityGroup:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      VpcId:
        Ref: EcsVpc
      SecurityGroupIngress:
        - PortRange: '-1/-1'
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: all
          NicType: intranet
      SecurityGroupEgress:
        - PortRange: '-1/-1'
          Priority: 1
          IpProtocol: all
          DestCidrIp: 0.0.0.0/0
          NicType: intranet
  EcsVpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      CidrBlock: 192.168.0.0/16
      VpcName:
        Fn::Join:
          - '-'
          - - StackId
            - Ref: ALIYUN::StackId
Outputs:
  EcsInstanceId:
    Value:
      Fn::GetAtt:
        - EcsInstance
        - InstanceId
            

Langkah 2: Buat stack

  1. Pada langkah Select Template, klik Select an Existing Template. Atur Template Import Method menjadi Enter Template Content, masukkan konten templat yang telah diedit di Langkah 1: Buat Templat ke dalam editor kode Template Content, lalu klik Next.

  2. Pada langkah Configure Template Parameters, konfigurasikan Stack Name dan parameter berikut:

    Parameter

    Deskripsi

    Contoh

    VSwitch Availability Zone

    ID zona sumber daya.

    Qingdao Zone C

    Image

    ID image dari Instance ECS.

    Nilai default: centos_7.

    Untuk informasi lebih lanjut, lihat Ikhtisar.

    centos_7

    Instance Type

    Tipe Instance ECS.

    Pilih tipe instance yang valid. Untuk informasi lebih lanjut, lihat Ikhtisar keluarga instance.

    ecs.c5.large

    System Disk Space

    Ukuran disk sistem dari Instance ECS.

    Nilai valid: 40 hingga 500.

    Satuan: GB.

    40

    Allocate Public IP

    Menentukan apakah akan mengalokasikan alamat IP publik ke Instance ECS.

    • Jika Anda mengaktifkan Allocate Public IP, sistem akan mengalokasikan alamat IP publik.

    • Jika Anda menonaktifkan Allocate Public IP, sistem tidak akan mengalokasikan alamat IP publik.

    Aktifkan Allocate IPV4 Public IP.

    Instance Password

    Kata sandi yang digunakan untuk masuk ke Instance ECS.

    Test_12****

    System Disk Type

    Kategori disk sistem dari Instance ECS. Nilai valid:

    • cloud_efficiency: ultra disk

    • cloud_ssd: SSD standar

    • cloud_essd: Enhanced SSD (ESSD)

    • cloud: basic disk

    • ephemeral_ssd: local SSD

    Untuk informasi lebih lanjut, lihat Disks.

    cloud_efficiency

  3. Klik Create.

  4. Pada tab Stack Information, lihat status stack. Setelah stack dibuat, klik tab Outputs untuk mendapatkan ID Instance ECS.

  5. Hubungkan ke Instance ECS di konsol ECS untuk melihat repositori YUM.

    Untuk informasi lebih lanjut tentang cara menghubungkan ke Instance ECS, lihat Metode Koneksi.

Langkah 3: Lihat sumber daya

  1. Di halaman Stacks, klik stack yang Anda buat di Langkah 1.

  2. Klik tab Resources untuk melihat informasi tentang sumber daya dalam stack.

    Tabel berikut menjelaskan sumber daya dalam contoh ini.

    Sumber Daya

    Jumlah

    Deskripsi

    Spesifikasi

    ALIYUN::ECS::Instance

    1

    Membuat instance ECS.

    • Jumlah: 1

    • Tipe Instance: ecs.c5.large

    • Kategori Disk Sistem: cloud_efficiency

    • Ukuran Disk Sistem: 40 GB

    • Alokasikan Alamat IP Publik: Ya

    null

    Untuk informasi lebih lanjut tentang rincian harga sumber daya, kunjungi konsol terkait atau lihat dokumentasi harga setiap sumber daya.