全部产品
云市场

使用 CLI 快速部署 EDAS 应用

更新时间:2019-04-18 17:46:16

命令行界面 CLI(Command Line Interface),是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。使用 CLI,您可以精确操控系统并可以高效而可靠地完成一些复杂操作。

阿里云命令行工具(Alibaba Cloud Command Line Interface)是在阿里云 GO SDK 之上构建的开源工具。阿里云 CLI 可直接访问 EDAS 的 Open API,请确保您已经开通了 EDAS 服务,并掌握了如何使用 SDK 调用 EDAS 的 API,调用 API 的具体操作方式请参见 SDK 接入指南

在 EDAS 的 ECS 集群或 Swarm 集群中,基于 HSF、Dubbo 或 Spring Cloud 框架开发的应用均可以通过阿里云 CLI来快速部署。

前提条件

完成本教程中的步骤需要完成以下前提任务:

  1. 开通 EDAS 服务
  2. 创建 ECS 实例

安装 CLI

阿里云 CLI 工具下载解压后即可使用,支持 Mac、Linux 和 Windows 平台(x64 版本) 终端。

各操作系统的下载链接如下:

解压后,您可以将 aliyun 文件移至/usr/local/bin目录下,或添加到$PATH环境变量中。

配置 CLI

在使用阿里云CLI前,您需要运行aliyun configure命令配置调用阿里云账号的 AccessKey、地域、语言等信息。

您可以在安全信息管理页面创建和查看您的 AccessKey,或者联系您的系统管理员获取 AccessKey。

  1. $ aliyun configure
  2. Configuring profile 'default' ...
  3. Aliyun Access Key ID [None]: <Your AccessKey ID>
  4. Aliyun Access Key Secret [None]: <Your AccessKey Secret>
  5. Default Region Id [None]: cn-hangzhou
  6. Default output format [json]: json
  7. Default Language [zh]: zh

使用 CLI 快速创建应用

参考以下脚本,快速创建一个应用。

  1. #!/bin/bash
  2. # 希望部署的region
  3. REGION="cn-beijing"
  4. # ECS实例ID
  5. ECS_ID="i-2z************b6"
  6. # ECS所在的VPCID
  7. VPC_ID="vpc-t**********c"
  8. # 命名空间名(若不存在会自动创建)
  9. NAMESPACE="myNamespace"
  10. # 集群名(会自动创建)
  11. CLUSTER_NAME="myCluster"
  12. # 应用名
  13. APP_NAME="myApp"
  14. # Step1: 创建命名空间
  15. aliyun edas InsertOrUpdateRegion --RegionTag $REGION:$NAMESPACE --RegionName $NAMESPACE --region $REGION --endpoint "edas.cn-beijing.aliyuncs.com" >> /dev/null
  16. # Step2: 创建集群
  17. CLUSTER_ID=`aliyun edas InsertCluster --ClusterName $CLUSTER_NAME --ClusterType 2 --NetworkMode 2 --VpcId $VPC_ID --logicalRegionId $REGION:$NAMESPACE --region $REGION --endpoint "edas.cn-beijing.aliyuncs.com" | sed -E 's/.*"ClusterId":"([a-z0-9-]*)".*/\1/g'`
  18. # Step3: 转化机器(需要花费一段时间)
  19. aliyun edas TransformClusterMember --InstanceIds $ECS_ID --TargetClusterId $CLUSTER_ID --Password Hello1234 >> /dev/null
  20. for i in `seq 300`
  21. do
  22. OUT=`aliyun edas ListClusterMembers --ClusterId $CLUSTER_ID | grep EcuId` && break
  23. sleep 1
  24. done
  25. ECU_ID=`echo $OUT | sed -E 's/.*"EcuId":"([a-z0-9-]*)".*/\1/g'`
  26. # Step4: 创建应用
  27. APP_ID=`aliyun edas InsertApplication --ApplicationName $APP_NAME --BuildPackId 51 --EcuInfo $ECU_ID --ClusterId $CLUSTER_ID --logicalRegionId $REGION:$NAMESPACE | sed -E 's/.*"AppId":"([a-z0-9-]*)".*/\1/g'`
  28. printf "An application is created by CLI, App ID:"$APP_ID"\n"

使用 CLI 快速部署应用

使用阿里云 CLI 参考如下代码快速部署应用。

  1. #!/bin/bash
  2. # 待部署应用ID(需要提前创建)
  3. APP_ID="87a6*********************4d1"
  4. # 应用分组ID
  5. GROUP_ID="54b*********************f27"
  6. # 上传的OSS存储桶名(该桶需要公共可读)
  7. OSS_BUCKET="eda*****mo"
  8. # 安装包文件(由您的CI系统构建生成)
  9. PACKAGE="hello-edas.war"
  10. # Step1: 上传部署包到OSS
  11. aliyun oss cp -f $PACKAGE oss://$OSS_BUCKET/$PACKAGE >> /dev/null
  12. PKG_URL=`aliyun oss sign oss://$OSS_BUCKET/$PACKAGE|head -1`
  13. # Step2: 发起部署请求
  14. CO_ID=`aliyun edas DeployApplication --AppId $APP_ID --PackageVersion $VERSION --DeployType url --WarUrl "${PKG_URL}" --GroupId $GROUP_ID | sed -E 's/.*"ChangeOrderId":"([a-z0-9-]*)".*/\1/g'`
  15. # Step3: 等待部署完成
  16. for i in `seq 300`
  17. do
  18. STATUS=`aliyun edas GetChangeOrderInfo --ChangeOrderId $CO_ID | sed -E 's/.*"Status":(.).*/\1/g'`
  19. [ 2 = ${STATUS} ] && break
  20. sleep 1
  21. done

以上配置项中,APP_ID 和 GROUP_ID 为应用配置参数,以上代码内的参数均为示例参数,请替换成您的应用参数。

若您不知如何设置以上参数值,请根据如下步骤获取:

  1. 登录 EDAS 控制台

  2. 在左侧导航栏中单击应用管理,进入应用列表页面点击你要进行的部署应用进入应用管理界面,单击部署应用

  3. 部署应用页面下方单击展开生成 Maven 插件配置获取参数信息。

    自动化部署应用