PowerShell 自动化管理 AWS (1)

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

  1. 下载安装AWSPowerShell模块

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

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

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

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

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

根据个人习惯,可以手动或者配置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

如果不想要了,可以删掉

Clear-AWSCredentials -ProfileName myprofile

3. 初始化链接

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

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

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

Get-AWSRegion

来测试一下是否工作

 Get-EC2Instance

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

成功!

4. 搜索需要的命令

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

Get-Command -Module AWSPowerShell | measure

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

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

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

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

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

甚至可以直接省略

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

Get-AWSCmdletName –ApiOperation SecurityGroup -MatchWithRegex

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

比如

 Get-Command *EC2* -Module AWSPowerShell

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

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

时间: 2024-10-05 09:02:32

PowerShell 自动化管理 AWS (1)的相关文章

PowerShell 自动化管理 AWS(4)- VPC

豆子继续来看看PowerShell 如何管理 AWS的虚拟网络 VPC. 网上我没有找到快速上手的文档,相关的命令主要来自官方api文档和get-command的搜索. http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html#route-tables-api-cli VPC的配置向导里面默认给了4种场景的配置方案,下面我以第一种最简单的场景为例,用PowerShell配置一下. 场景如下,简单的说,我

Powershell AWS 自动化管理(2)

昨天学习了基本的准备工作,利用PowerShell成功的链接了AWS.今天来看看如何使用PowerShell来管理AWS的服务. EC2,S3,VPC,Security Group,RDS等等这些AWS最早提供的服务可以说是他最核心的骨架,豆子的目标是最后用PowerShell实现一个高可用的博客,比如这样的http://beanxyz.blog.51cto.com/5570417/1536312 来看看如何用PowerShell管理EC2相关的服务.EC2是AWS的虚拟机服务,当我们手动创建虚

Powershell AWS 自动化管理 (9) - Route 53

最后再看看如何用PowerShell 管理AWS的DNS服务. Route 53的启用很简单,可以在AWS上注册新的域名 也可以在其他网站注册新的域名再迁徙过来.豆子在GoDaddy上已经有一个域名 beanxyz.com了,管理界面挪到Route 53 很简单,在Route 53新建一个HostedZone beanxyz.com, 他会自动生成对应的NS 记录,在我的GoDaddy里面把NS记录指向AWS的NS就行了. 手动配置很简单,如下所示,我创建了一个blog.beanxyz.com

Powershell AWS 自动化管理 (6) - IAM

这一节继续学习如何使用PowerShell来管理IAM的基本功能,主要包括user,group,role和policy的创建和配置. 创建组 New-IAMGroup  -GroupName "powerUsers" 创建新用户 New-IAMUser -UserName "myNewUser" 把用户加入组中 Add-IAMUserToGroup -UserName myNewUser -GroupName powerUsers 确认一下成功 接下来是重头戏,给用

Powershell AWS 自动化管理 (10) - 创建一个高可用的WordPress博客(上)

豆子花了2周的时间断断续续地学习了AWS PowerShell的一些核心命令,然后又花了2天的功夫把这些知识点组合起来.网上目前除了官方文档的快速手册和命令大全基本没有太多PowerShell管理AWS的内容,大部分命令豆子是一条条搜索和查看帮助硬尝试出来的,下面共享出来,如果以后有类似需要的话可以省一些时间. 现在演示一下如何用PowerShell 脚本在AWS上创建一个高可用的WordPress博客.这是个很典型的AWS的高可用场景. 下面是基本需求 用户通过DNS解析Elastic Loa

PowerShell AWS 自动化管理(3)

今天继续学习PowerShell管理 AWS S3.比起EC2来说,S3要简单很多.S3一般是用作普通的存储来使用,可以存放一些对I/O要求不是太高的文件等等. 他的操作也很简单,无非是创建 bucket,删除bucket,上传,下载文件,设置访问权限等等:S3本身也可以做成一个简单的静态网页. 例如,AWS的管理界面 设置相关的属性等等 下面看看PowerShell如何实现 创建一个新的Bucket New-S3Bucket -BucketName yliscript -Region ap-s

【DevOps】做个愉快的DevOps之XenServer自动化管理(1)

这里主要是用python来做为开发工具,当然,如果你喜欢,go.java.C都可以.语言只是一种工具,不必纠结那种,用得顺手,方便,而且适合团队作战的最好. 我选python,主要是python是高级语言,拥有大量的开源模板库,初期学习成本低,适合在团队内迅速推广.简单的说就是不用我一个人去搞,我闪了后,别人也能轻松接手维护. XenServer的开放接口工具叫Xapi,网站是   :  http://xapi-project.github.io/xen-api/   .当然,使用Xapi前,我

ansible自动化管理windows系统实战

一.简述 1.说明日常系统自动化运维过程中难免会有windows系列服务器,就开源软件来说目前大多的对windows批量管理兼容性不太好;不像Linux系统便捷,但现实中确实有些业务需要跑在windows上;搜索查找折腾一番后,发现python开发的ansible(已经被redhat收购)有比较好的解决方案,通过一番折腾,整理出来,以备忘交流; 2.实验环境服务器端:CentOS7.4_x64 自带python 2.7.5 ip:172.16.3.167源码安装ansible 被管理window

python自动化管理mysql主从同步

mysql 多实例 1.my.cnf 通过定义mysqldconfig类   mysqld_vars = {}  从里面获得很多配置文件相关参数写入字典 mysql.py 2.init DB 初始化数据库 3.修改权限 4.rc脚本启动 5.check 检查一下配置文件,配置文件与mysql变量同步 6.值其实一样,不让显示 7.Popen 调用 mysql -e 命令 SQL IO Seconds_Behind_Master:0    看这个阀值.大于两秒 8.mysql主从 主配置文件: b