阅读背景:

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

来源:互联网 

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


  1. 下载安装AWSPowerShell模块


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

https://aws.amazon.com/powershell/


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


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

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

650) this.width=650;" src="https://www.itdaan.com/go/aHR0cDovL3MyLjUxY3RvLmNvbS93eWZzMDIvTTAxLzgzLzYzL3dLaW9tMWR4LS1MaHdPZDRBQURiRjdHcUVoSTE3OS5wbmc=" style="float:none;" title="1.PNG" alt="wKiom1dx--LhwOd4AADbF7GqEhI179.png" referrerpolicy="no-referrer">




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


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

import-module AWSPowerShell


   2. 配置安全访问文件


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

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

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


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


生成对应的profile文件

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


确认一下

Get-AWSCredentials -ListProfiles

650) this.width=650;" src="https://www.itdaan.com/go/aHR0cDovL3MxLjUxY3RvLmNvbS93eWZzMDIvTTAyLzgzLzYyL3dLaW9MMWR4LS1hQmM3NE5BQUFOSHN1bHVsVTQzOS5wbmc=" title="2.PNG" style="float:none;" alt="wKioL1dx--aBc74NAAANHsululU439.png" referrerpolicy="no-referrer">

如果不想要了,可以删掉

Clear-AWSCredentials -ProfileName myprofile



3. 初始化链接


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

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

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

Get-AWSRegion

650) this.width=650;" src="https://www.itdaan.com/go/aHR0cDovL3M1LjUxY3RvLmNvbS93eWZzMDIvTTAyLzgzLzYzL3dLaW9tMWR4LS11Z0dpdW5BQUJYQ2JFbnV2NDYxMy5wbmc=" title="3.PNG" style="float:none;" alt="wKiom1dx--ugGiunAABXCbEnuv4613.png" referrerpolicy="no-referrer">

来测试一下是否工作

 Get-EC2Instance

650) this.width=650;" src="https://www.itdaan.com/go/aHR0cDovL3M0LjUxY3RvLmNvbS93eWZzMDIvTTAxLzgzLzYzL3dLaW9tMWR4LS1fUUZfRENBQUFmbTY0d2hrMDcyMi5wbmc=" title="4.PNG" style="float:none;" alt="wKiom1dx--_QF_DCAAAfm64whk0722.png" referrerpolicy="no-referrer">


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


650) this.width=650;" src="https://www.itdaan.com/go/aHR0cDovL3MyLjUxY3RvLmNvbS93eWZzMDIvTTAwLzgzLzYyL3dLaW9MMWR4X01pekJseVlBQUFpY1pkU0tmMDM3NC5wbmc=" style="float:none;" title="5.PNG" alt="wKioL1dx_MizBlyYAAAicZdSKf0374.png" referrerpolicy="no-referrer">


成功!

650) this.width=650;" src="https://www.itdaan.com/go/aHR0cDovL3MzLjUxY3RvLmNvbS93eWZzMDIvTTAwLzgzLzYzL3dLaW9tMWR4X015UmcteVlBQUJsRHRFZnRWSTMwNC5wbmc=" style="float:none;" title="6.PNG" alt="wKiom1dx_MyRg-yYAABlDtEftVI304.png" referrerpolicy="no-referrer">


4. 搜索需要的命令


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

Get-Command -Module AWSPowerShell | measure

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

650) this.width=650;" src="https://www.itdaan.com/go/aHR0cDovL3MyLjUxY3RvLmNvbS93eWZzMDIvTTAwLzgzLzYyL3dLaW9MMWR4X2huaWk0cXFBQUFhRm1vLU9NZzMwMy5wbmc=" style="float:none;" title="7.PNG" alt="wKioL1dx_hnii4qqAAAaFmo-OMg303.png" referrerpolicy="no-referrer">


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


650) this.width=650;" src="https://www.itdaan.com/go/aHR0cDovL3MzLjUxY3RvLmNvbS93eWZzMDIvTTAxLzgzLzYyL3dLaW9MMWR5QWJQUVdlbWNBQUMzUmtOanZoazg0OC5wbmc=" title="12.PNG" alt="wKioL1dyAbPQWemcAAC3RkNjvhk848.png" referrerpolicy="no-referrer">

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


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


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

650) this.width=650;" src="https://www.itdaan.com/go/aHR0cDovL3M0LjUxY3RvLmNvbS93eWZzMDIvTTAxLzgzLzYyL3dLaW9MMWR4X2g2ajh2UDBBQUFpMWFnM29RRTE2OS5wbmc=" style="float:none;" title="8.PNG" alt="wKioL1dx_h6j8vP0AAAi1ag3oQE169.png" referrerpolicy="no-referrer">


甚至可以直接省略

650) this.width=650;" src="https://www.itdaan.com/go/aHR0cDovL3MyLjUxY3RvLmNvbS93eWZzMDIvTTAxLzgzLzYzL3dLaW9tMWR4X2lLaEx5Z0RBQUF2RVNfRGxOSTg3Mi5wbmc=" style="float:none;" title="9.PNG" alt="wKiom1dx_iKhLygDAAAvES_DlNI872.png" referrerpolicy="no-referrer">


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

Get-AWSCmdletName �CApiOperation SecurityGroup -MatchWithRegex

650) this.width=650;" src="https://www.itdaan.com/go/aHR0cDovL3M1LjUxY3RvLmNvbS93eWZzMDIvTTAwLzgzLzYzL3dLaW9tMWR4X2llREJvSjdBQUR2TUU2clp1VTY0NS5wbmc=" style="float:none;" title="10.PNG" alt="wKiom1dx_ieDBoJ7AADvME6rZuU645.png" referrerpolicy="no-referrer">

 


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

比如

 Get-Command *EC2* -Module AWSPowerShell

650) this.width=650;" src="https://www.itdaan.com/go/aHR0cDovL3M0LjUxY3RvLmNvbS93eWZzMDIvTTAxLzgzLzYzL3dLaW9tMWR4XzRpRGNyMzhBQUNWcVZQLVgxQTMyMy5wbmc=" title="11.PNG" alt="wKiom1dx_4iDcr38AACVqVP-X1A323.png" referrerpolicy="no-referrer">


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


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


本文出自 “麻婆豆腐” 博客,请务必保留此出处https://beanxyz.blog.51cto.com/5570417/1793572


分享到: