CentOSシステムを作成する場合、システムに一般的なソフトウェアをインストールするためにYUMリポジトリを手動で構成する必要があります。 YUMリポジトリは、ソフトウェアパッケージのコレクションです。 CentOSのバージョンごとに異なるYUMリポジトリが必要です。 リソースオーケストレーションサービス(ROS)を使用すると、マッピングを定義するテンプレートに基づいてスタックを作成することにより、さまざまなバージョンのCentOSのYUMリポジトリの構成を自動化できます。
ステップ 1:テンプレートを作成する
マッピングは、次のテンプレートで定義されています。 マッピングには、複数のバージョンのCentOSのYUMリポジトリのURLが含まれています。 弾性計算サービス(ECS)インスタンスを作成し、インスタンスのシステムを初期化すると、Fn::FindInMap関数は、InstanceImageIdで指定されたイメージのバージョンに一致するYUMリポジトリのURLを返します。
ROSTemplateFormatVersion: '2015-09-01'
Description: ECS Centosシステムインスタンスを作成し、yumリポジトリを設定します。 // Translate the description
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- VSwitchZoneId
- InstanceImageId
- InstanceType
- SystemDiskSize
- InstancePublicIP
- InstancePassword
- SystemDiskCategory
Label:
default: ECS
TemplateTags:
- VPC ECSインスタンスを作成します // Translate the tag
Parameters:
SystemDiskCategory:
Type: String
Label:
en: System Disk Type
Description:
en: '<font color=''blue''><b>Optional values:</b></font><br>[cloud_efficiency: <font color=''green''>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color=''green''>SSD Cloud Disk</font>]<br>[cloud_essd: <font color=''green''>ESSD Cloud Disk</font>]<br>[cloud: <font color=''green''>Cloud Disk</font>]<br>[ephemeral_ssd: <font color=''green''>Local SSD Cloud Disk</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: Image ID,support [centos_6,centos_7,centos_8]
Label:
en: Image
InstanceType:
Type: String
Description:
en: 'Instance type. The instance type must be available in the zone to which the vSwitch belongs.</b></font><br>General instance type: <font color='red'><b>ecs.c5.large.</b></font><br>Note: The general instance type may not be available in specific zones.<br>For more information, see <a href=''https://www.alibabacloud.com/help/en/doc-detail/25378.html'' target=''_blank''><b><font color=''blue''>Overview of instance families</font></a></b>.'
Label:
en: Instance Type
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: VSwitchZoneId
InstancePassword:
NoEcho: true
Type: String
Description:
en: Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in).
AllowedPattern: '[0-9A-Za-z\_\-\&:;''<>,=%`~!@#\(\)\$\^\*\+\|\{\}\[\]\.\?\/]+$'
Label:
en: Instance Password
ConstraintDescription:
en: Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in).
MinLength: 8
MaxLength: 30
InstancePublicIP:
Type: Boolean
Description:
en: Whether to assign a common IP.
Label:
en: Allocate Public IP
Default: false
VSwitchZoneId:
AssociationProperty: ALIYUN::ECS::Instance:ZoneId
Type: String
Description:
en: Zone ID.<br><b>Note:<font color='blue'>Before you specify a zone ID, check whether the specifications of the ECS instance are available in the zone. We recommend that you select a zone in which the vSwitch that you specify does not reside.</font></b>
Label:
en: VSwitch Availability Zone
SystemDiskSize:
Default: 40
Type: Number
Description:
en: 'System disk size, range of values: 40-500, units: GB.'
Label:
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" : "Centos のインストールに成功しました。"}' // Translate the message
- 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
ステップ 2:スタックを作成する
[テンプレートの選択] ステップで、[既存のテンプレートを選択] をクリックします。 [テンプレートのインポート方法] を [テンプレートコンテンツを入力] に設定し、ステップ 1:テンプレートを作成する で編集したテンプレートコンテンツを [テンプレートコンテンツ] コードエディターに入力し、[次へ] をクリックします。
[テンプレートパラメーターの構成] ステップで、[スタック名] と次のパラメーターを構成します。
パラメーター
説明
例
Vswitch 可用ゾーン
リソースのゾーン ID。
Qingdao Zone C
イメージ
ECS インスタンスのイメージ ID。
デフォルト値: centos_7。
詳細については、概要をご参照ください。
centos_7
インスタンスタイプ
ECS インスタンスタイプ。
有効なインスタンスタイプを選択します。 詳細については、インスタンスファミリーの概要をご参照ください。
ecs.c5.large
システムディスク容量
ECS インスタンスのシステムディスクサイズ。
有効な値: 40 ~ 500。
単位: GB。
40
パブリック IP を割り当てる
ECS インスタンスにパブリック IP アドレスを割り当てるかどうかを指定します。
[パブリック IP を割り当てる] をオンにすると、システムはパブリック IP アドレスを割り当てます。
[パブリック IP を割り当てる] をオフにすると、システムはパブリック IP アドレスを割り当てません。
[IPv4 パブリック IP を割り当てる] をオンにします。
インスタンスパスワード
ECS インスタンスにログオンするために使用されるパスワード。
Test_12****
システムディスクタイプ
ECS インスタンスのシステムディスクカテゴリ。 有効な値:
cloud_efficiency: ウルトラディスク
cloud_ssd: 標準 SSD
cloud_essd: 拡張 SSD (ESSD)
cloud: ベーシックディスク
ephemeral_ssd: ローカル SSD
詳細については、ディスクをご参照ください。
cloud_efficiency
[作成] をクリックします。
[スタック情報] タブで、スタックのステータスを表示します。 スタックが作成された後、[出力] タブをクリックして、ECS インスタンスの ID を取得します。
ECS コンソールで ECS インスタンスに接続して、YUM リポジトリを表示します。
ECS インスタンスへの接続方法の詳細については、接続方法をご参照ください。
ステップ 3:リソースを表示する
[スタック] ページで、ステップ 1 で作成したスタックをクリックします。
[リソース] タブをクリックして、スタック内のリソースに関する情報を表示します。
次の表は、この例の resources について説明しています。
リソース
数量
説明
仕様
ALIYUN::ECS::Instance
1
ECS インスタンスを作成します。
数量: 1
インスタンスタイプ: ecs.c5.large
システムディスクカテゴリ: cloud_efficiency
システムディスクサイズ: 40 GB
パブリック IP アドレスを割り当てる: はい
nullリソースの価格設定の詳細については、関連するコンソールにアクセスするか、各リソースの価格設定ドキュメントを参照してください。