通过阿里云命令行工具 aliyuncli 购买服务器

开始想通过 aliyuncli 的 golang 源码进行编译安装(注:python 版的 aliyuncli 已不再维护),但没成功,详见 通过 golang 源码编译阿里云命令行工具 aliyuncli 出错 

后来改为直接下载编译好的 aliyuncli

wget -qO- http://aliyun-cli.oss-cn-hangzhou.aliyuncs.com/aliyun-cli-linux-3.0.0-amd64.tgz | tar xvz -C /usr/local/bin

使用前通过 aliyun configure 命令配置 access key

# aliyun configure
Configuring profile '' in '' authenticate mode...
Access Key Id []: xxx
Access Key Secret []: yyy
Default Region Id []: cn-hangzhou
Default Output Format [json]: json (Only support json))
Default Language [zh|en] en: 
Saving profile[] ...Done.

启用自动补全

echo 'complete -C /usr/local/bin/aliyun aliyun' >> .bash_profile

然后使用下面的命令购买按量付费的服务器

复制代码
aliyun ecs CreateInstance \
  --RegionId cn-hangzhou(地域) \
  --ZoneId cn-hangzhou-b(可用区) \
  --InstanceChargeType PostPaid(按量付费) \
  --IoOptimized optimized(IO优化) \
  --InstanceType ecs.n4.xlarge(实例规格) \
  --ImageId m-xxx(镜像ID) \
  --VSwitchId vsw-xxx(VPC交换机ID) \
  --InternetChargeType PayByTraffic(公网按使用流量计费) \
  --InternetMaxBandwidthOut 1(公网最大带宽) \
  --SecurityGroupId sg-xxx(安全组ID) \
  --HostName webserver-temp(主机名) \
  --InstanceName webserver-temp(实例名称) 
复制代码

执行上面的命令可以完成购买,但目前存在的问题:

1)虽然指定了 InternetChargeType 与 InternetMaxBandwidthOut ,但创建的服务器没有分配公网 IP

2)服务器创建后处于停止状态,不能自动启动

3)缺少知道释放时间的参数

。。。

后来知道了:

1)分配公网IP需要执行 aliyun ecs AllocatePublicIpAddress 命令

2)启动服务器需要执行 aliyun ecs StartInstance 命令

3)设置自动释放时间需要执行 aliyun ecs ModifyInstanceAutoReleaseTime 命令

改进后的 shell 脚本如下

复制代码
Result=`aliyun ecs CreateInstance \
  --RegionId cn-hangzhou(地域) \
  --ZoneId cn-hangzhou-b(可用区) \
  --InstanceChargeType PostPaid(按量付费) \
  --IoOptimized optimized(IO优化) \
  --InstanceType ecs.n4.xlarge(实例规格) \
  --ImageId m-xxx(镜像ID) \
  --VSwitchId vsw-xxx(VPC交换机ID) \
  --InternetChargeType PayByTraffic(公网按使用流量计费) \
  --InternetMaxBandwidthOut 1(公网最大带宽) \
  --SecurityGroupId sg-xxx(安全组ID) \
  --HostName webserver-temp(主机名) \
  --InstanceName webserver-temp(实例名称)`
InstanceId=`echo "$Result" | grep -Po "(i-[^\"]+)"`
sleep 30s
aliyun ecs AllocatePublicIpAddress --InstanceId $InstanceId
aliyun ecs StartInstance --InstanceId $InstanceId
aliyun ecs ModifyInstanceAutoReleaseTime --InstanceId $InstanceId --AutoReleaseTime $1
复制代码

实测有效。

posted @   dudu  阅读(1030)  评论(1编辑  收藏  举报
编辑推荐:
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
阅读排行:
· 我干了两个月的大项目,开源了!
· 推荐一款非常好用的在线 SSH 管理工具
· 千万级的大表,如何做性能调优?
· 盘点!HelloGitHub 年度热门开源项目
· Phi小模型开发教程:用C#开发本地部署AI聊天工具,只需CPU,不需要GPU,3G内存就可以运行,
历史上的今天:
2008-04-22 发布新模板-ChinaHeart
2004-04-22 推荐一篇介绍.NET MetaData的文章
点击右上角即可分享
微信分享提示