compute-nest-best-practice/pai/pai-dsw.yaml (170 lines of code) (raw):
ROSTemplateFormatVersion: '2015-09-01'
Description:
zh-cn: 创建VPC、VSwitch、NAS文件系统,配置PAI工作空间、数据集,部署DSW实例,支持指定实例规格和工作空间名。
en: Create VPC, VSwitch, and NAS file systems, configure PAI workspaces and datasets,
deploy DSW instances with support for specifying instance specifications and workspace
names.
Parameters:
ZoneId:
Type: String
AssociationProperty: ALIYUN::ECS::Instance::ZoneId
Label:
en: VSwitch Availability Zone
zh-cn: 交换机可用区
# 新建ack所在的vpc的网段
VpcCidrBlock:
Type: String
Label:
en: VPC CIDR IPv4 Block
zh-cn: 专有网络IPv4网段
Description:
zh-cn: VPC的ip地址段范围,<br>您可以使用以下的ip地址段或其子网:<br><font color='green'>[10.0.0.0/8]</font><br><font color='green'>[172.16.0.0/12]</font><br><font color='green'>[192.168.0.0/16]</font>
en: 'The ip address range of the VPC in the CidrBlock form; <br>You can use the following ip address ranges and their subnets: <br><font color=''green''>[10.0.0.0/8]</font><br><font color=''green''>[172.16.0.0/12]</font><br><font color=''green''>[192.168.0.0/16]</font>'
Default: 192.168.0.0/16
AssociationProperty: ALIYUN::VPC::VPC::CidrBlock
# 新建ack所在的交换机的网段
VSwitchCidrBlock:
Type: String
Label:
en: VSwitch CIDR Block
zh-cn: 交换机子网网段
Description:
zh-cn: 必须属于VPC的子网段。
en: Must belong to the subnet segment of VPC.
Default: 192.168.1.0/24
AssociationProperty: ALIYUN::VPC::VSwitch::CidrBlock
AssociationPropertyMetadata:
VpcCidrBlock: VpcCidrBlock
InstanceSpec:
Label:
zh-cn: PAI实例的规格
en: The ECS specification of the instance
Type: String
AllowedValues:
- ecs.gn7i-c8g1.2xlarge
WorkspaceName:
Type: String
Label:
zh-cn: 工作空间名
en: workspace name
Resources:
# 新建vpc
EcsVpc:
Type: ALIYUN::ECS::VPC
Properties:
VpcName:
Ref: ALIYUN::StackName
CidrBlock:
Ref: VpcCidrBlock
# 新建vswitch
EcsVSwitch:
Type: ALIYUN::ECS::VSwitch
Properties:
VSwitchName:
Ref: ALIYUN::StackName
VpcId:
Ref: EcsVpc
ZoneId:
Ref: ZoneId
CidrBlock:
Ref: VSwitchCidrBlock
FileSystem:
Type: ALIYUN::NAS::FileSystem
Properties:
# 协议类型
ProtocolType: NFS
# 存储类型
StorageType: Capacity
ZoneId:
Ref: ZoneId
VSwitchId:
Ref: EcsVSwitch
VpcId:
Ref: EcsVpc
Workspace:
Type: 'ALIYUN::PAI::Workspace'
Properties:
EnvTypes:
- prod
Description: modelscope
WorkspaceName:
Ref: WorkspaceName
Dataset:
Type: 'ALIYUN::PAI::Dataset'
Properties:
DatasetName:
Ref: ALIYUN::StackName
DataSourceType: NAS
WorkspaceId:
'Fn::GetAtt':
- Workspace
- WorkspaceId
Property: DIRECTORY
Uri:
Fn::Join:
- ""
- - nas://
- Fn::GetAtt:
- FileSystem
- FileSystemId
- .
- Ref: ALIYUN::Region
- /
DSW:
Type: 'ALIYUN::PaiDswApi::Instance'
Properties:
ImageUrl: registry.cn-beijing.aliyuncs.com/pai-dlc/pytorch-training:1.12-cpu-py39-ubuntu20.04
WorkspaceId:
'Fn::GetAtt':
- Workspace
- WorkspaceId
InstanceName:
Ref: 'ALIYUN::StackName'
EcsSpec:
Ref: InstanceSpec
Datasets:
- MountPath: /mnt
DatasetId:
Fn::GetAtt:
- Dataset
- DatasetId
Metadata:
'ALIYUN::ROS::Interface':
ParameterGroups:
- Parameters:
- WorkspaceName
- InstanceSpec
Label:
default: PAI
- Parameters:
- ZoneId
Label:
default:
zh-cn: 可用区配置
en: Zone Configuration
- Parameters:
- VpcCidrBlock
- VSwitchCidrBlock
Label:
default:
zh-cn: 选择网络配置
en: Choose existing Infrastructure Configuration
Outputs:
InstanceId:
Description:
zh-cn: 实例id
en: instance id
Value:
'Fn::GetAtt':
- DSW
- InstanceId
WorkspaceId:
Description:
zh-cn: 工作空间的ID
en: The ID of the workspace.
Value:
'Fn::GetAtt':
- Workspace
- WorkspaceId
Creator:
Description:
zh-cn: 创建者的用户ID
en: The user ID of the creator.
Value:
'Fn::GetAtt':
- Workspace
- Creator