你还在用控制台管理你的云服务器么?
这年头, 不管是创业者还是已经成熟的大企业, 不上云似乎已经无法面对父老乡亲. 不过随着实例的越来越多, 日常监控和维护已经成为各家的负担:
什么? 你只用一台服务器?
你的目光紧紧一直停留在一台服务器? 那忽略我, 看不见我….
当实例越来越多, 我们迫切需要一种更好的方式来管理自己的云资源. 各家的控制台虽然做的越来越好, 但始终不便于操控所有的资源. 如果是大的团队, 更加无法忍受直接控制台操作. 特别是大家都在linux环境下做运维管理. 运维更喜欢用脚本的方式来做这些事情, 比如写定时任务, 做监控, 做报表, 鼠标党始终不是真正的运维.
目前了解到的云厂商, AWS和阿里云是有自己的命令行工具支持的. AWS毋庸置疑是业界老大. 阿里云目前是国内的老大, 虽然跟AWS有一定的差距.
因为AWS云服务器大部分布置在国外, 所以团队并没有大规模使用. 目前还是以阿里云为主.
最近开始使用阿里云的命令行工具:
两个地方能下载到:
一个是云市场(免费的)
http://market.aliyun.com/products/55530001/cmgj000314.html?spm=5176.900004.4.2.4x2AVv
一个是官网:
http://develop.aliyun.com/command?spm=5176.7114037.201.78.r1qf0A
其实阿里云云市场有几个命令行工具, 但是都是支持单一产品, 比如单纯支持ECS, 或者SLS之类的. 而我目前用的这个是aliyuncli, 也就是未来要支持所有产品的.
拿ECS来举例, 看的出来, aliyuncli工具和open api是一一对应的关系, 至少是想做成这样的趋势:
工具亮点:
1. 支持自动补全, 这一招应该是跟着aws学习的. 不过对于工具的易用性上来说, 是真的不过, 针对linux这种全命令行交互的方式来说, 自动补全是最好的功能, 避免较长的命令出现输入错误之类的问题.
2. 相比较单一的产皮, aliyuncli 集成的更多的产品, 特别是对于ECS SLB RDS 这三大件, 支持做的比较好. 不用一个接着一个下载了…
3. 大大简化了使用者开发SDK的耗时, 安装后直接内嵌到系统命令中(linux和windows都是如此), 这样可以直接在脚本中调用命令, 进行处理. 做运维的都知道, open api是最常被使用的东西, 而SDK一般是对open api的封装.但是对于SDK来说, 不论是python的还是Java的都需要进行复杂的二次开发才能使用. 而aliyuncli这种命令行工具, 其实是对SDK的封装, 相当于他帮助你开发好了一套管理工具(当然是基本的调用), 然后运维人员只需要进行简单的二次开发, 比如用shell 写几个简单的命令就可以使用了. 日常启停资源或者是查看资源状态都是可以的.
基本用法:
以ECS举例
1. 配置一下key和secret, 执行aliyuncli configure , 然后输入自己的key和secret(在控制台创建)
2. 在线帮助功能:
$ aliyuncli ecs help <– 查看某个产品支持的操作
$ aliyuncli ecs StartInstance –InstanceId XXXX <– 启动某个实例
$ aliyuncli ecs StopInstance –InstanceId XXXX <– 停止某个实例
$ aliyuncli ecs DescribeInstanceAttribute –InstanceId XXXX <–查看某个实例的属性
–output table <– 表格输出, 便于查看
–output json <– json 格式输出, 便于编程
–output text <– text 格式, 没看出啥好处
有兴趣的开发者可以适用一下看看. 后续会推出我们团队在实际开发中使用的各种运维脚本, 供大家参考.