Tous les produits
Search
Centre de documentation

Resource Orchestration Service:Utiliser les mappages pour configurer les dépôts yum sur CentOS

Dernière mise à jour :Aug 26, 2026

Chaque version de CentOS requiert des dépôts yum spécifiques. Resource Orchestration Service (ROS) vous permet de créer une pile qui utilise des mappages pour configurer automatiquement le dépôt yum approprié, en fonction de la version de CentOS installée sur votre instance ECS.

Étape 1 : Créer le modèle

Le modèle suivant définit un objet Mappings qui associe les versions de CentOS aux URL des dépôts yum d'Alibaba Cloud. Au démarrage d'une instance ECS, la fonction Fn::FindInMap récupère l'URL du dépôt yum correspondant à la version de CentOS de l'image spécifiée (InstanceImageId) et remplace le dépôt par défaut.

ROSTemplateFormatVersion: '2015-09-01'
Description: Creates an ECS instance that runs CentOS and configures the yum repository.
Metadata:
  ALIYUN::ROS::Interface:
    ParameterGroups:
      - Parameters:
          - VSwitchZoneId
          - InstanceImageId
          - InstanceType
          - SystemDiskSize
          - InstancePublicIP
          - InstancePassword
          - SystemDiskCategory
        Label:
          default: ECS
    TemplateTags:
      - Creates VPC ECS instance
Parameters:
  SystemDiskCategory:
    Type: String
    Label:
      en: System Disk Type
      zh-cn: 系统盘类型
    Description:
      en: '<font color=''blue''><b>Valid values:</b></font><br>[cloud_efficiency: <font color=''green''>Ultra Disk</font>]<br>[cloud_ssd: <font color=''green''>Standard SSD</font>]<br>[cloud_essd: <font color=''green''>Enhanced SSD</font>]<br>[cloud: <font color=''green''>Basic Disk</font>]<br>[ephemeral_ssd: <font color=''green''>Local SSD</font>]'
      zh-cn: '<font color=''blue''><b>可选值:</b></font><br>[cloud_efficiency: <font color=''green''>高效云盘</font>]<br>[cloud_ssd: <font color=''green''>SSD云盘</font>]<br>[cloud_essd: <font color=''green''>ESSD云盘</font>]<br>[cloud: <font color=''green''>普通云盘</font>]<br>[ephemeral_ssd: <font color=''green''>本地SSD盘</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:
      zh-cn: 镜像ID, 支持选择 [centos_6,centos_7,centos_8]
      en: 'The ID of the image. Valid values: [centos_6, centos_7, centos_8].'
    Label:
      zh-cn: 镜像
      en: Image
  InstanceType:
    Type: String
    Description:
      zh-cn: 填写VSwitch可用区下可使用的规格;<br>通用规格:<font color='red'><b>ecs.c5.large</b></font><br>注:可用区可能不支持通用规格<br>规格详见:<a href='https://www.alibabacloud.com/help/zh/doc-detail/25378.html' target='_blank'><b><font color='blue'>实例规格族</font></a></b>
      en: 'The instance type. The instance type must be available in the VSwitch''s availability zone.<br>Example of a general-purpose instance type: <font color=''red''><b>ecs.c5.large</b></font><br>Note: General-purpose instance types may not be available in all availability zones.<br>For more information, see <a href=''https://www.alibabacloud.com/help/en/doc-detail/25378.html'' target=''_blank''><b><font color=''blue''>Instance families</font></a></b>.'
    Label:
      zh-cn: 实例规格
      en: Instance Type
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: VSwitchZoneId
  InstancePassword:
    NoEcho: true
    Type: String
    Description:
      en: 'The logon password for the instance. The password must be 8 to 30 characters in length and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include ()`~!@#$%^&*_-+=|{}[]:;''<>,.?/.'
      zh-cn: 服务器登录密码。长度为8~30个字符,必须包含大写英文字母、小写英文字母、数字和特殊字符(`()~!@#$%^&*_-+=|{}[]:;'<>,.?/)中的三项。
    AllowedPattern: '[0-9A-Za-z\_\-\&:;''<>,=%`~!@#\(\)\$\^\*\+\|\{\}\[\]\.\?\/]+$'
    Label:
      en: Instance Password
      zh-cn: 实例密码
    ConstraintDescription:
      en: 'The password must be 8 to 30 characters in length and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include ()`~!@#$%^&*_-+=|{}[]:;''<>,.?/.'
      zh-cn: 长度为8~30个字符,必须包含大写英文字母、小写英文字母、数字和特殊字符(`()~!@#$%^&*_-+=|{}[]:;'<>,.?/)中的三项。
    MinLength: 8
    MaxLength: 30
  InstancePublicIP:
    Type: Boolean
    Description:
      zh-cn: 是否分配公共IP。
      en: Specifies whether to assign a public IP address.
    Label:
      zh-cn: 分配公网IP
      en: Allocate Public IP
    Default: false
  VSwitchZoneId:
    AssociationProperty: ALIYUN::ECS::Instance:ZoneId
    Type: String
    Description:
      zh-cn: 可用区ID。<br><b>注: <font color='blue'>选择前请确认该可用区是否支持创建ECS资源的规格,建议设置与其他交换机不同的可用区</font></b>
      en: 'The ID of the availability zone.<br><b>Note: <font color=''blue''>Before you select an availability zone, make sure that the specified instance type is available in that zone. We recommend that you select an availability zone that is different from the availability zones of other VSwitches.</font></b>'
    Label:
      zh-cn: 交换机可用区
      en: VSwitch Availability Zone
  SystemDiskSize:
    Default: 40
    Type: Number
    Description:
      zh-cn: 系统盘大小, 取值范围:40~500, 单位:GB。
      en: 'The size of the system disk. Unit: GB. Valid values: 40 to 500.'
    Label:
      zh-cn: 系统盘空间
      en: System Disk Space
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" : "Install Centos success."}'
          - 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
            

Étape 2 : Créer la pile

  1. Connectez-vous à la console ROS.

  2. Dans le volet de navigation de gauche, cliquez sur Stacks.

  3. Dans la barre de navigation supérieure, sélectionnez la région dans laquelle vous souhaitez créer la pile, par exemple China (Hangzhou).

  4. Sur la page Stacks, cliquez sur Create Stack. Dans la section Specify Template, cliquez sur Select an Existing Template.

    Remarque
    • Si vous sélectionnez Create Template ou ROS Infrastructure Composer, vous êtes redirigé vers la page correspondante.

  5. Sur la page Select Template, définissez la valeur du paramètre Template Import Method sur Enter Template Content, saisissez le modèle YAML présenté à l'étape Étape 1, puis cliquez sur Next.

  6. Sur la page Configure Parameters, saisissez un nom pour le champ Stack Name et configurez les paramètres suivants.

    Paramètre

    Description

    Exemple

    vSwitch Availability Zone

    La zone de disponibilité du vSwitch.

    China North 1 Zone C

    Image

    L'ID de l'image de l'instance ECS.

    Par défaut : centos_7.

    Présentation des images.

    centos_7

    Instance specification

    Le type d'instance ECS.

    Sélectionnez un type disponible. Familles d'instances.

    ecs.c5.large

    System Disk Space

    La taille du disque système.

    Valeurs valides : 40 à 500.

    Unité : Go.

    40

    Allocate Public IP

    Indique s'il faut attribuer une adresse IP publique à l'instance ECS.

    • Sélectionné : attribue une adresse IP publique.

    • Désactivé : n'attribue pas d'adresse IP publique.

    Sélectionné

    Instance Password

    Le mot de passe de connexion à l'instance.

    Test_12****

    System Disk Type

    La catégorie du disque système. Valeurs valides :

    • cloud_efficiency : Ultra Disk.

    • cloud_ssd : Standard SSD.

    • cloud_essd : Enhanced SSD.

    • cloud : Basic Disk.

    • ephemeral_ssd : Local SSD.

    Disques.

    cloud_efficiency

  7. Cliquez sur Create.

  8. Dans l'onglet Stack Information, vérifiez l'état de la pile. Une fois la création terminée, cliquez sur l'onglet Output pour obtenir l'ID de l'instance ECS.

  9. Connectez-vous à l'instance ECS et vérifiez le dépôt yum.

    Pour vous connecter à une instance ECS, consultez la rubrique Méthodes de connexion.

Étape 3 : Afficher les ressources

  1. Dans le volet de navigation de gauche, cliquez sur Stacks.

  2. Sur la page Stacks, cliquez sur le nom de la pile cible.

  3. Cliquez sur l'onglet Resources pour afficher les informations relatives aux ressources.

    Le tableau suivant décrit les ressources créées dans cet exemple.

    Ressource

    Quantité

    Description

    Spécifications

    ALIYUN::ECS::Instance

    1

    Une instance ECS.

    • Total : 1

    • Type d'instance : ecs.c5.large

    • Catégorie du disque système : Ultra Disk

    • Espace disque système : 40 Go

    • Attribution d'une IP publique : Oui

    Remarque

    Pour plus d'informations sur les frais liés aux ressources, consultez la page officielle des tarifs ou la documentation tarifaire de chaque produit.