这年头, 无论是创业者仍是已经成熟的大企业, 不上云彷佛已经没法面对父老乡亲. 不过随着实例的愈来愈多, 平常监控和维护已经成为各家的负担:html
什么? 你只用一台服务器?python
你的目光牢牢一直停留在一台服务器? 那忽略我, 看不见我....linux
当实例愈来愈多, 咱们迫切须要一种更好的方式来管理本身的云资源. 各家的控制台虽然作的愈来愈好, 但始终不便于操控全部的资源. 若是是大的团队, 更加没法忍受直接控制台操做. 特别是你们都在linux环境下作运维管理. 运维更喜欢用脚本的方式来作这些事情, 好比写定时任务, 作监控, 作报表, 鼠标党始终不是真正的运维.shell
目前了解到的云厂商, AWS和阿里云是有本身的命令行工具支持的. AWS毋庸置疑是业界老大. 阿里云目前是国内的老大, 虽然跟AWS有必定的差距.编程
由于AWS云服务器大部分布置在国外, 因此团队并无大规模使用. 目前仍是以阿里云为主.json
最近开始使用阿里云的命令行工具:windows
两个地方能下载到:api
一个是云市场(免费的)服务器
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 格式, 没看出啥好处
有兴趣的开发者能够适用一下看看. 后续会推出咱们团队在实际开发中使用的各类运维脚本, 供你们参考.