aws cli管理aws云资源
aws cli 是AWS 服务的统一管理工具,其基于python开发,是在boto基础上的增强和封装 。其提供了我们一种类似于操作linux命令一样的方式操作aws 的全系统产品资源。本篇就结合aws cli 的安装、示例、及官方手册相关的东西做一个整个和打包。
一、aws cli 的安装
安装方式分为 pip 自动安装 或 源码包安装,pip 安装相对简单:
- # sudo pip install awscli
源码包安装方式是将aws cli 包下载并解压后,进入其目录通过install 完成安装,其在github的托管页面为:https://github.com/aws/aws-cli ,下载好源码包后,可以通过下面的方式进行安装:
- # cd <path_to_awscli>
- # python setup.py install
有新版本需要做升级操作时,也可以通过下面的方式进行升级:
- # pip install –upgrade awscli
二、aws cli 主机环境变量
可以在任一台能连接外网的主机上安装完aws cli 包,并且在该上配置好环境变量,就可以操作线上账号下的所有机器资源了。环境变量的配置也很简单 ,主要有三项,如下:
- # vim ~/.aws/config
- [default]
- aws_access_key_id=<default access key>
- aws_secret_access_key=<default secret key>
- region=ap–southeast–1
注:
1、在windows下的配置文件路径为%UserProfile%.awsconfig 。
2、在环境变量中还可以配置其他参数,或多个区域实例,具体可以参看github上的帮助文档。
三、使用
默认情况下aws命令接受的输入和输出格式数据格式都是json格式,不过也可以通过参数,指定输出的为table表格式或text文件格式,具体可以使 用aws help查看帮助手册。默认aws cli 的包文件存放路径为 /usr/local/lib/python2.7/dist-packages/awscli ,也可以进该目录下的examples 查看帮助。
以ec2下的两个用法为例
简单用法:
- # aws ec2 describe-regions
- {
- “Regions”: [
- {
- “Endpoint”: “ec2.eu-west-1.amazonaws.com”,
- “RegionName”: “eu-west-1″
- },
- {
- “Endpoint”: “ec2.sa-east-1.amazonaws.com”,
- “RegionName”: “sa-east-1″
- },
- {
- “Endpoint”: “ec2.us-east-1.amazonaws.com”,
- “RegionName”: “us-east-1″
- },
- {
- “Endpoint”: “ec2.ap-northeast-1.amazonaws.com”,
- “RegionName”: “ap-northeast-1″
- },
- {
- “Endpoint”: “ec2.us-west-2.amazonaws.com”,
- “RegionName”: “us-west-2″
- },
- {
- “Endpoint”: “ec2.us-west-1.amazonaws.com”,
- “RegionName”: “us-west-1″
- },
- {
- “Endpoint”: “ec2.ap-southeast-1.amazonaws.com”,
- “RegionName”: “ap-southeast-1″
- },
- {
- “Endpoint”: “ec2.ap-southeast-2.amazonaws.com”,
- “RegionName”: “ap-southeast-2″
- }
- ]
- }
复杂用法:
- # aws ec2 describe-tags –filters “Name=key,Values=Name” –output=table
- —————————————————————————–
- | DescribeTags |
- +—————————————————————————+
- || Tags ||
- |+——+————–+—————–+———————————+|
- || Key | ResourceId | ResourceType | Value ||
- |+——+————–+—————–+———————————+|
- || Name| i–a092e7f6 | instance | AMZ–SIN–SpringBoard–255–13 ||
- || Name| i–680bbe40 | instance | AMZ–SIN–Eve–2–20 ||
- || Name| i–983360cf | instance | VPN ||
- || Name| i–d3360084 | instance | BS ||
- || Name| i–5e613208 | instance | UA ||
- || Name| i–a3d6088b | instance | AMZ–SIN–FacebookWallE–0–10 ||
- || Name| i–02391d54 | instance | AMZ–SIN–VPCGateway–255–254 ||
- || Name| i–908a3cb8 | instance | AMZ–SIN–Deploy–255–40 ||
- || Name| i–317ad719 | instance | AMZ–SIN–LBSMaster–254–201 ||
- || Name| i–c454ecec | instance | AMZ–SIN–MobileContent–1–21 ||
- || Name| i–efe329c7 | instance | AMZ–SIN–Test–255–203 ||
- || Name| i–312aa619 | instance | AMZ–SIN–IPS–5–10 ||
- || Name| i–1725ab41 | instance | BS1 ||
- || Name| i–6cb5ef3a | instance | BS3 ||
- |+——+————–+—————–+———————————+|
其他命令也较多,如 aws iam list-users 查看用户信息。由于命令比较多,这里就不再一一列举。官方的pdf手册我已上传到百度云盘