豆子很有一段时间没有去碰aws了,最近看了看发现完全可以用powershell来进行管理,兴致勃勃地打算写个自动化的脚本来配置个高可用的网站练手。不过不积跬步无以至千里,先从最基本的东西看起。


  1. 下载安装AWSPowerShell模块


首先,需要下载对应的模块,下载地址在这里。

http://aws.amazon.com/powershell/


下载之后按照提示安装就行了。


默认情况下,他会把模块安装到下面这个地址

C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell

PowerShell 自动化管理 AWS (1) - 初始化连接_aws




根据个人习惯,可以手动或者配置powershell profile,或者更改$env:pspath的路径来导入模块。


导入模块之后就可以使用相关的命令了

import-module AWSPowerShell


   2. 配置安全访问文件


要访问AWS,首先得有一个AWS的账户,注册一个免费的试用账户可以用1年。使用主账号登录AWS,然后在IAM里面创建一个新的账号,分配权限,下载保存这个账户的AccessKey和SecretKey

具体操作可以参考我的这篇文章

http://beanxyz.blog.51cto.com/5570417/1433013


有了这两个安全码,我们可以配置这个用户的profile文件了,然后利用这个文件来初始化链接,这样比每次都指定安全代码简单安全多了。


生成对应的profile文件

Set-AWSCredentials -AccessKey AKIAJASDFSXSXV2RQ -SecretKey Pc58DwSDFo4Pe41SN618H+yFv5SDFSFJ2M -StoreAs myprofile


确认一下

Get-AWSCredentials -ListProfiles

PowerShell 自动化管理 AWS (1) - 初始化连接_aws_02

如果不想要了,可以删掉

Clear-AWSCredentials -ProfileName myprofile



3. 初始化链接


配置了profile之后,就可以链接到自己的AWS了,指定profile名字和登录的区域

 Initialize-AWSDefaults -ProfileName myprofile -Region ap-southeast-2

如果不确定 区域的简写,可以通过下面这个命令查看

Get-AWSRegion

PowerShell 自动化管理 AWS (1) - 初始化连接_powershell_03

来测试一下是否工作

 Get-EC2Instance

PowerShell 自动化管理 AWS (1) - 初始化连接_powershell_04


成功获取了一个我的EC2实例,试试看能否远程关机。


PowerShell 自动化管理 AWS (1) - 初始化连接_aws_05


成功!

PowerShell 自动化管理 AWS (1) - 初始化连接_powershell_06


4. 搜索需要的命令


现在成功的连上了AWS,那么我可以使用哪些命令呢?首先看看这个模块一共多少个命令?

Get-Command -Module AWSPowerShell | measure

哇!足足有1909个命令,基本上任何图形界面能够实现的功能都能用powershell实现了。

PowerShell 自动化管理 AWS (1) - 初始化连接_aws_07


事实上,他的确包括了几乎AWS的每个服务


PowerShell 自动化管理 AWS (1) - 初始化连接_aws_08

这么多命令,怎么搜索自己需要的呢?


一种方法是通过服务操作类型来搜索


如果我知道对应的操作名称,我可以直接搜索 apioperation

PowerShell 自动化管理 AWS (1) - 初始化连接_powershell_09


甚至可以直接省略

PowerShell 自动化管理 AWS (1) - 初始化连接_powershell_10


如果我记不太清完整的名字,我可以通过正则命令来进行匹配,比如我需要知道任何和securitygroup相关的服务操作

Get-AWSCmdletName –ApiOperation SecurityGroup -MatchWithRegex

PowerShell 自动化管理 AWS (1) - 初始化连接_powershell_11

 


 另外一种方法是PowerShell里面通用的方法,通过命令的名字来搜索

比如

 Get-Command *EC2* -Module AWSPowerShell

PowerShell 自动化管理 AWS (1) - 初始化连接_aws_12


现在豆子成功地连上了AWS,那么下一步来看看如何使用PowerShell来配置基本的EC2 服务了。


官网参考资料: http://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html