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配置一下。

场景如下,简单的说,我需要配置一个VPC,里面再进一步划分一个子网作为公共区域,这个公共区域需要通过一个网关访问互联网,我需要给他配置路由表

现在看看具体的命令

首先创建一个新的VPC 10.2.0.0/16

#VPC
#Create new VPC 
New-EC2Vpc -CidrBlock 10.2.0.0/16

然后在这个VPC里面划分一个子网 10.2.1.0/24

#Create subnet in the new VPC
$vpcid=get-ec2vpc | Where-Object {$_.Cidrblock -eq "10.2.0.0/16"} | select -ExpandProperty vpcid
New-EC2Subnet -CidrBlock 10.2.1.0/24 -VpcId $vpcid

登录网页看看,已经成功创建了,不过他没有name的Tag,看起来不方便。

我给他添加一个Tag,标明他的位置在Sydney

$subid=Get-EC2Subnet | Where-Object{$_.CidrBlock -eq "10.2.1.0/24"} | select -ExpandProperty SubnetId
#Add a Name Tag to the Subnet
$tag=new-object Amazon.EC2.Model.Tag -Property @{key="Name";value="Sydney"}
New-EC2Tag -Resource $subid -Tag $tag

执行命令之后可以看见名字已经更新了

接下来,我需要配置一个网关,首先看看有没有空余的,如果没有的话,就自己创建一个

#Create Internet Gateway, if there is no free IGW, create a new one and attach to VPC
if((Get-EC2InternetGateway | Where-Object {$_.Attachments[0] -eq $null} | measure).count -eq 0){
    New-EC2InternetGateway 
}

创建以后的界面如下所示,目前没有名字,也没有绑定到任何的VPC网络。

给个名字,然后绑定上面创建的VPC中(注意不是Subnet)

$igwid=Get-EC2InternetGateway | Where-Object {$_.Attachments[0] -eq $null} | select -ExpandProperty internetGateWayId
new-EC2tag -Resource $igwid -Tag $tag
Get-EC2InternetGateway $igwid|Add-EC2InternetGateway -VpcId $vpcid

如果想取消绑定,空余使用 dismount的命令

Dismount-EC2InternetGateway -InternetGatewayId igw-08d9476d -VpcId $vpcid

最后,我们来看看路由表。 他默认会成一个主路由表,里面有个默认的路由指向本地。


我可以直接修改这个主路由表,也可以创建一个新的

比如说,我创建一个新的,然后在他上面添加一个新的路由,所有的网络访问都指向我的网关。

#RouteTable
New-EC2RouteTable -VpcId $vpcid 
$routetable=Get-EC2RouteTable | Where-Object {$_.VpcId -eq $vpcid}
#Add new Route
New-EC2Route -DestinationCidrBlock "0.0.0.0/0" -GatewayId $igwid -RouteTableId $routetable.RouteTableId

如下所示

我还可以强制关联到对应的子网。如果是在默认的主路由表里面的话,所有的子网都会自动继承VPC相关的路由,当然我前面创建了一个新的,我也可以强制的绑定某个子网到这个路由表。

命令如下

Get-EC2Subnet -SubnetId $subid | gm
Register-EC2RouteTable -RouteTableId $routetable.RouteTableId -SubnetId $subid

这样,一个最简单的VPC网络就完成了,包括VPC,Subnet,互联网网关,路由表。其余的公网IP,映射,DHCP等等我都没有进行手动配置,默认AWS都已经自动配置好可以使用了。

下一篇来看看IAM的用户管理。

时间: 2024-10-08 01:28:14

PowerShell 自动化管理 AWS(4)- VPC的相关文章

PowerShell 自动化管理 AWS (1)

豆子很有一段时间没有去碰aws了,最近看了看发现完全可以用powershell来进行管理,兴致勃勃地打算写个自动化的脚本来配置个高可用的网站练手.不过不积跬步无以至千里,先从最基本的东西看起. 下载安装AWSPowerShell模块 首先,需要下载对应的模块,下载地址在这里. http://aws.amazon.com/powershell/ 下载之后按照提示安装就行了. 默认情况下,他会把模块安装到下面这个地址 C:\Program Files (x86)\AWS Tools\PowerShe

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 自动化管理 (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

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 确认一下成功 接下来是重头戏,给用

【总结】学习AWS的VPC并通过快速上手实验室动手实操

讲师:黄涛 高级技术讲师 1.邱洋的理解 AWS的服务类型包括 计算.存储内容分发.联网.数据库等10多大类,几十项服务 但是跟网络相关只有2个(VPC和数据中心光纤连接) AWS的VPC是云计算中网络运维的基石,是SDN能力的体现 VPC是一整套模拟传统网络运维的工具,包括: 子网 DHCP 防火墙(安全组) 路由表(NACL) DNS 网关 VPN等众多功能 AWS的快速上手实验室,模式值得学习,包括: 实验概述说明 实验具体操作步骤文档(如按照服务的生命周期维度进行设计:创建.修改.删除1

【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