Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add “Deployment on Aliyun ” in readme #1852

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .computenest/.computenest_parameters.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"ServicePort":"80","SecurityPorts":[80],"RepoName":"hanans426/one-api","Arch":"EcsSingle","RunCommand":"echo \"start run command\"\necho \"${AdminPassword}\"\n","SourceCodePath":".","CommandTimeout":3600,"ServiceType":"private","AllowedRegions":["cn-hangzhou","cn-shanghai","cn-beijing"],"ArtifactSourceType":"SourceCode","ImageId":"centos_7_9_x64_20G_alibase_20230613.vhd","RegionId":"cn-hangzhou","CustomParameters":[{"NoEcho":true,"Type":"String","AssociationProperty":"ALIYUN::ECS::Instance::Password","Label":"管理员密码","Name":"AdminPassword"}]}
21 changes: 21 additions & 0 deletions .computenest/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 代码仓库结构

## 文档目录说明:
```
.
├── README.md - README
├── docs - 服务文档相关文件
│ └── index.md
├── resources - 服务资源文件
│ ├── icons
│ │ └── service_logo.png - 服务logo
│ └── artifact_resources - 部署物相关资源文件
├── ros_templates - 服务ROS模板目录,支持多模板
│ └── template.yaml - ROS模板,ROS模板引擎根据该模板会自动创建出所有的资源
├── config.yaml - 服务配置文件,服务构建过程中会使用计算巢命令行工具computenest-cli,computenest-cli会基于该配置文件构建服务
├── preset_parameters.yaml - (该文件只有托管版有)服务商预设参数,如VpcId,VSwitchId等,该ros模板内容会渲染为表单方便服务商填写
```

## 其他
关于ROS模板,请参见 [资源编排](https://help.aliyun.com/zh/ros)。
关于computenest-cli请参见 [computenest-cli](https://pypi.org/project/computenest-cli/)。
28 changes: 28 additions & 0 deletions .computenest/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
Service:
RegionId: cn-hangzhou
DeployType: ros
DeployMetadata:
SupplierDeployMetadata:
FileArtifactRelation:
'{{ computenest::file::hanans426_one-api }}':
ArtifactId: ${Artifact.Artifact_1.ArtifactId}
ArtifactVersion: ${Artifact.Artifact_1.ArtifactVersion}
TemplateConfigs:
- Name: 单机版
Url: 'ros_templates/template.yaml'
AllowedRegions:
- cn-hangzhou
- cn-shanghai
- cn-beijing
ServiceType: private
ServiceInfo:
Locale: zh-CN
ShortDescription: demo
Image: 'resources/icons/service_logo.png'
Artifact:
Artifact_1:
ArtifactType: File
ArtifactName: hanans426_one-api
ArtifactProperty:
RegionId: cn-hangzhou
Url: 'resources/artifact_resources/file/hanans426_one-api.tar.gz'
Binary file added .computenest/docs/architecture_ecs_single.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
70 changes: 70 additions & 0 deletions .computenest/docs/index_ecs_single.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# 服务模板说明文档

## 服务说明

**简单描述服务的功能和用途。**
例如:
_(服务功能描述,如“WordPress 是一款免费开源的 CMS,适用于创建和管理各种类型的网站。”)_

_(服务快速上手链接或文档,如果有的话)_

## 服务架构

此服务模板构建出的服务的部署架构为单机ecs部署。

<img src="architecture_ecs_single.png" width="600" height="400" align="bottom"/>

## 计费说明
通过此服务模板构建服务不产生费用。
用户部署构建出的服务时,资源费用主要涉及:
- 所选ECS实例规格
- 磁盘容量
- 公网带宽

计费方式包括:
- 按量付费(小时)
- 包年包月

预估费用在部署前可实时看到。

## RAM账号所需权限

此服务模板构建出的服务需要对ECS、VPC等资源进行访问和创建操作,若使用RAM用户创建服务实例,需要在创建服务实例前,对使用的RAM用户的账号添加相应资源的权限。添加RAM权限的详细操作,请参见[为RAM用户授权](https://help.aliyun.com/document_detail/121945.html)。所需权限如下表所示:

| 权限策略名称 | 备注 |
|-------------------------------------|-------------------------------|
| AliyunECSFullAccess | 管理云服务器服务(ECS)的权限 |
| AliyunVPCFullAccess | 管理专有网络(VPC)的权限 |
| AliyunROSFullAccess | 管理资源编排服务(ROS)的权限 |
| AliyunComputeNestUserFullAccess | 管理计算巢服务(ComputeNest)的用户侧权限 |
| AliyunComputeNestSupplierFullAccess | 管理计算巢服务(ComputeNest)的服务商侧权限 | |

## 服务实例计费说明

**详细说明服务实例的计费方式。**
_(描述费用构成,例如所选 vCPU 和内存规格,系统盘类型和容量等)_

_(列出计费方式,例如按量付费或包年包月)_

## 服务实例部署流程

### 部署参数说明

| 参数组 | 参数项 | 说明 |
|---------------------------------|--------|-------------------------------------------------------------------------|
| 服务实例 | 服务实例名称 | 长度不超过64个字符,必须以英文字母开头,可包含数字、英文字母、短划线(-)和下划线(_)。 |
| | 地域 | 服务实例部署的地域。 |
| | 付费类型 | 资源的计费类型:按量付费和包年包月。 |
| ECS实例配置 | 实例类型 | ECS实例规格配置。 |
| | 实例密码 | 长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*-+=&#124;{}[]:;'<>,.?/ 中的特殊符号)。 |
| 网络配置 | 可用区 | ECS实例所在可用区。 |

### 部署步骤

**简述如何一步步部署服务实例。**

1. _(步骤1描述和相关链接或图片,如果有的话)_
2. _(步骤2描述和相关链接或图片,如果有的话)_
...

[部署链接](部署链接地址)
Binary file not shown.
Binary file added .computenest/resources/icons/service_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
218 changes: 218 additions & 0 deletions .computenest/ros_templates/template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
ROSTemplateFormatVersion: '2015-09-01'
Description:
en: Source Code Service Ros Template
zh-cn: 源代码服务模板
Parameters:
PayType:
Type: String
Label:
en: ECS Instance Charge Type
zh-cn: 付费类型
Default: PostPaid
AllowedValues:
- PostPaid
- PrePaid
AssociationProperty: ChargeType
AssociationPropertyMetadata:
LocaleKey: InstanceChargeType
PayPeriodUnit:
Type: String
Label:
en: Pay Period Unit
zh-cn: 购买资源时长周期
Default: Month
AllowedValues:
- Month
- Year
AssociationProperty: PayPeriodUnit
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${PayType}
- PostPaid
PayPeriod:
Type: Number
Label:
en: Period
zh-cn: 购买资源时长
Default: 1
AllowedValues:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
AssociationProperty: PayPeriod
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${PayType}
- PostPaid
EcsInstanceType:
Type: String
Label:
en: Instance Type
zh-cn: 实例类型
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
InstanceChargeType: ${PayType}
Constraints:
InstanceTypeFamily:
- ecs.u1
- ecs.e
InstancePassword:
NoEcho: true
Type: String
Description:
en: Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in)
zh-cn: 服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)
AllowedPattern: '^[a-zA-Z0-9-\(\)\`\~\!\@\#\$\%\^\&\*\_\-\+\=\|\{\}\[\]\:\;\<\>\,\.\?\/]*$'
Label:
en: Instance Password
zh-cn: 实例密码
ConstraintDescription:
en: Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in)
zh-cn: 长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)
MinLength: 8
MaxLength: 30
AssociationProperty: ALIYUN::ECS::Instance::Password
ZoneId:
Type: String
Label:
en: Zone ID
zh-cn: 可用区ID
AssociationProperty: ALIYUN::ECS::Instance::ZoneId
VpcId:
Type: String
Label:
en: VPC ID
zh-cn: 专有网络VPC实例ID
AssociationProperty: 'ALIYUN::ECS::VPC::VPCId'
VSwitchId:
Type: String
Label:
en: VSwitch ID
zh-cn: 交换机实例ID
Default: ''
AssociationProperty: 'ALIYUN::ECS::VSwitch::VSwitchId'
AssociationPropertyMetadata:
VpcId: VpcId
ZoneId: ZoneId
AdminPassword:
Type: String
AssociationProperty: ALIYUN::ECS::Instance::Password
Label: 管理员密码
NoEcho: True
Resources:
SecurityGroup:
Type: ALIYUN::ECS::SecurityGroup
Properties:
SecurityGroupName:
Ref: ALIYUN::StackName
VpcId:
Ref: VpcId
SecurityGroupIngress:
- PortRange: 80/80
Priority: 1
SourceCidrIp: 0.0.0.0/0
IpProtocol: tcp
NicType: internet
InstanceGroup:
Type: ALIYUN::ECS::InstanceGroup
Properties:
# 付费类型
InstanceChargeType:
Ref: PayType
PeriodUnit:
Ref: PayPeriodUnit
Period:
Ref: PayPeriod
VpcId:
Ref: VpcId
VSwitchId:
Ref: VSwitchId
ZoneId:
Ref: ZoneId
SecurityGroupId:
Ref: SecurityGroup
ImageId: centos_7_9_x64_20G_alibase_20230613.vhd
Password:
Ref: InstancePassword
InstanceType:
Ref: EcsInstanceType
SystemDiskCategory: cloud_essd
SystemDiskSize: 200
InternetMaxBandwidthOut: 5
IoOptimized: optimized
MaxAmount: 1
RunInstallCommand:
Type: ALIYUN::ECS::RunCommand
Properties:
InstanceIds:
Fn::GetAtt:
- InstanceGroup
- InstanceIds
Type: RunShellScript
Sync: true
Timeout: 3600
CommandContent:
Fn::Sub:
- |
#!/bin/bash
# 源代码通过computenest-cli被打包为tar.gz包,并发布为部署物
wget '{{ computenest::file::hanans426_one-api }}' -O hanans426_one-api.tar.gz > /var/log/download.log
tar -zxvf hanans426_one-api.tar.gz && cd "$(tar -tzf hanans426_one-api.tar.gz | head -1 | awk -F'/' '{print $1}')"
echo "start run command"
echo "${AdminPassword}"

ARGUS_VERSION=3.5.7 /bin/bash -c "$(curl -sS https://cms-agent-${RegionId}.oss-${RegionId}-internal.aliyuncs.com/Argus/agent_install_ecs-1.7.sh)" >> /root/install_cms_agent.log 2>&1
- RegionId:
Ref: ALIYUN::Region
Outputs:
ServerAddress:
Description:
en: ServerAddress.
zh-cn: 访问页面。
Value:
Fn::Sub:
- 'http://${ServerAddress}:80'
- ServerAddress:
Fn::Select:
- 0
- Fn::GetAtt:
- InstanceGroup
- PublicIps
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- PayType
- PayPeriodUnit
- PayPeriod
Label:
default: 付费类型配置
- Parameters:
- EcsInstanceType
- InstancePassword
Label:
default: 资源配置
- Parameters:
- ZoneId
- VpcId
- VSwitchId
Label:
default: 可用区配置
- Parameters:
- AdminPassword
Label:
en: Software Configuration
zh-cn: 软件配置

11 changes: 11 additions & 0 deletions README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,17 @@ If you encounter a blank page after deployment, refer to [#97](https://github.co
</div>
</details>

<details>
<summary><strong>Deployment on Aliyun</strong></summary>
<div>

> Aliyun support one-click deployment to a dedicated VPC.。

Aliyun support the fast deployment,[Deployment Link](https://computenest.console.aliyun.com/service/instance/create/default?type=user&ServiceName=One%20API%20%E7%A4%BE%E5%8C%BA%E7%89%88)

</div>
</details>

## Configuration
The system is ready to use out of the box.

Expand Down
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,17 @@ Render 可以直接部署 docker 镜像,不需要 fork 仓库:https://dashbo
</div>
</details>

<details>
<summary><strong>部署到阿里云</strong></summary>
<div>

> 阿里云支持一键部署到专属VPC。

阿里云支持快速一键部署,[部署链接](https://computenest.console.aliyun.com/service/instance/create/default?type=user&ServiceName=One%20API%20%E7%A4%BE%E5%8C%BA%E7%89%88)

</div>
</details>

## 配置
系统本身开箱即用。

Expand Down