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手册我已上传到百度云盘