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

简介:

豆子继续来看看PowerShell 如何管理 AWS的虚拟网络 VPC。


网上我没有找到快速上手的文档,相关的命令主要来自官方api文档和get-command的搜索。

1
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html#route-tables-api-cli


VPC的配置向导里面默认给了4种场景的配置方案,下面我以第一种最简单的场景为例,用PowerShell配置一下。


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

wKioL1d1_u3iTAArAAKAzsqyZi0710.png


现在看看具体的命令


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

1
2
3
#VPC
#Create new VPC 
New-EC2Vpc  -CidrBlock 10.2.0.0/16

 

wKioL1d1_vXTbr5rAAAmpjFnbdQ174.png


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

1
2
3
#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

wKiom1d1_v-T5bzoAAA4VC-NFzg804.png


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


wKioL1d1_wiCLohxAABfd3EttKs220.png

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


1
2
3
4
$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


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

wKiom1d1_xHykU91AABdeVbIMco731.png


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

1
2
3
4
#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 
}

wKiom1d1_xry2nLOAAAbaPsUKcI820.png

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


wKioL1d1_yORZMhBAAAjozM0rOU007.png

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

1
2
3
$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

wKioL1d1_yyBqXesAABFQI7Gi1s660.png

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

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


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

1
<br>

wKiom1d1_zWjdyggAAAx814pjrc191.png


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


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

1
2
3
4
5
#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


如下所示

wKioL1d1_z7zG2PeAAArGIDYbJY472.png

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


命令如下

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

wKiom1d1_0fiG8aLAAA5sjsv3g8423.png


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






本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1794912,如需转载请自行联系原作者

相关实践学习
阿里云专有网络VPC使用教程
专有网络VPC可以帮助您基于阿里云构建出一个隔离的网络环境,并可以自定义IP 地址范围、网段、路由表和网关等;此外,也可以通过专线/VPN/GRE等连接方式实现云上VPC与传统IDC的互联,构建混合云业务。 产品详情:https://www.aliyun.com/product/vpc
目录
相关文章
|
2月前
|
NoSQL 网络协议 架构师
|
5月前
|
SQL Java BI
有什么好用的企业自动化管理开源软件
有什么好用的企业自动化管理开源软件
|
5月前
|
存储 运维 数据中心
Terraform的自动化管理
Terraform的自动化管理
27 0
|
5月前
|
缓存 Kubernetes 容器
OpenKruise是阿里云开源的大规模应用自动化管理引擎
OpenKruise是阿里云开源的大规模应用自动化管理引擎
353 2
|
10月前
Retrofit实现cookie自动化管理
Retrofit实现cookie自动化管理
64 0
|
11月前
|
JavaScript 测试技术 开发工具
从0搭建vue3组件库:自动化发布、管理版本号、生成 changelog、tag
从0搭建vue3组件库:自动化发布、管理版本号、生成 changelog、tag
253 0
|
11月前
|
机器学习/深度学习 存储 文字识别
【增值税发票识别 OCR】如何实现自动化发票管理
通过利用增值税发票识别OCR API 实现智能化的增值税发票识别、分类和归档,企业可以实现自动化的发票管理流程。这将大大提高工作效率、减少错误率,并为企业提供准确的财务数据和统计分析基础,有需要的小伙伴赶紧用起来吧~
182 0
【增值税发票识别 OCR】如何实现自动化发票管理
|
4月前
|
存储 Ubuntu Linux
windows可以安装Ubuntu,ubuntu上也可以安装Powershell
powerhsell除了可以在windows上使用外,还可以在Ubuntu上部署开发环境。下面介绍Ubuntu上安装powershell的方法。
60 0
|
6月前
|
Shell Linux 开发工具
windows中cmd和PowerShell批处理命令
之前在 Git 批量删除本地分支,有用到 Linux 或 MacOS 下的批处理命令,这个命令中的 grep、xargs 本身是 Shell script,在 windows 中的 cmd 和 PowerShell 中是不能用的
53 0

热门文章

最新文章