[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

[Ansible] 我写了一本构建 AWS 网络的剧本

你好。已经很久了。
这是 SS 队的 Shimeji。

今天我们将讨论使用 Ansible 构建 AWS 网络的手册。
*我的高级同事撰写了有关使用 Terraform 和 CloudFormation 构建 AWS 网络的文章,因此我也想看一下它们。
这次我们要构建的网络将具有以下形式。

目录结构

playbook的目录结构如下。

├── README.md ├── ansible.cfg ├── 主机 ├── 角色 │ └── aws_vpc │ ├── 任务 │ │ └── main.yml │ └── vars │ └── main.yml └── vpc_create.yml

剧本

库存文件

root@DESKTOP-MOGIJIA:/opt/playbook/aws-vpc-2layer# cat 主机 [localhost] 127.0.0.1

请在清单文件中指定本地主机。

角色

Ansible 允许将 playbook 模块化为称为“角色”的单元。
这次,我们将创建一个名为“aws_vpc”的单独角色,并将其包含在主剧本中。

root@DESKTOP-MOGIJIA:/opt/playbook/aws-vpc-2layer# cat Roles/aws_vpc/tasks/main.yml --- # aws_vpc 的任务文件 - name: create_vpc ec2_vpc_net: name: "{{ vpc_name }}" cidr_block: "{{ vpc_cidr }}" 区域: "{{ Region }}" dns_hostnames: yes dns_support: yes 注册: vpc_info # PUBLIC_SUBNET 创建 - 名称: create_public_subnet ec2_vpc_subnet: vpc_id: "{{ vpc_info.vpc.id }}" cidr : "{{ item.pub_subnet_cidr }}" az: "{{ item.subnet_az }}" 区域: "{{ Region }}" Resource_tags: { "Name":"{{ item.pub_subnet_name }}" } 注册: pubsub_info with_items: - "{{ pub_subnet }}" # PRIVATE_SUBNET 创建 - 名称: create_private_subnet ec2_vpc_subnet: vpc_id: "{{ vpc_info.vpc.id }}" cidr: "{{ item.pri_subnet_cidr }}" az: "{{ item. subnet_az }}"region:"{{region }}"resource_tags:{"Name":"{{item.pri_subnet_name}}"}register:prisub_info with_items:-"{{pri_subnet}}"#创建IGW-name:create_igw ec2_vpc_igw: vpc_id: "{{ vpc_info.vpc.id }}" 区域: "{{ Region }}" 标签: { "Name":"{{ igw_name }}" } register: igw_info # ROUTETABLE 创建 (IGW) - 名称: create_route_table ec2_vpc_route_table: vpc_id: "{{ vpc_info.vpc.id }}" 子网: "{{ atache_igw_subnet }}" 路由: - 目标: 0.0.0.0/0 gateway_id: "{{ igw_info.gateway_id }}" 区域: " {{ 区域 }}" resources_tags: { "名称":"{{ rttable_pub_name }}" }

Ansible 允许您使用“ec2_vpc_xxx”模块构建 AWS VPC、子网、互联网网关等。
另外,我们会将各种值转换为变量,以便以后可以更改它们。

定义变量

root@DESKTOP-MOGIJIA:/opt/playbook/aws-vpc-2layer# cat Roles/aws_vpc/vars/main.yml --- # aws_vpc 的 vars 文件 # REGION 区域: "ap-northeast-1" # VPC vpc_name: "shimeji-wd-vpc" vpc_cidr: "10.0.0.0/16" # IGW igw_name: "shimeji-igw" # ROUTETABLE(PUBLIC) rttable_pub_name: "shimeji-pub-rt" # PUBLIC_SUBNET pub_subnet: - { pub_subnet_cidr: "10.0. 10.0/24" ,subnet_az: "ap-northeast-1a" ,pub_subnet_name: "shimeji-wd-public-subnet-a" } - { pub_subnet_cidr: "10.0.20.0/24" ,subnet_az: "ap-northeast-1c" ,pub_subnet_name: "shimeji-wd-public-subnet-c" } # PRIVATE_SUBNET pri_subnet: - { pri_subnet_cidr: "10.0.30.0/24" ,subnet_az: "ap-northeast-1a" ,pri_subnet_name: "shimeji-wd-private- subnet-a" } - { pri_subnet_cidr: "10.0.40.0/24" ,subnet_az: "ap-northeast-1c" ,pri_subnet_name: "shimeji-wd-private-subnet-c" } # 链接到 IGW 的子网 atache_igw_subnet: - " 10.0.10.0/24” - “10.0.20.0/24”

这次,我们将在每个资源的名称中添加前缀“shimeji”。

剧本

是的,主要剧本。
包括上面创建的角色。

root@DESKTOP-MOGIJIA:/opt/playbook/aws-vpc-2layer# cat vpc_create.yml --- # VPC CREATE Playbook - 名称:创建 vpc 子网 igw 可路由主机:本地主机 连接:本地 Gather_facts:False 变为:False 角色: -aws_vpc

由于这次我们不配置服务器,因此不需要“gather_facts”和“become”。
现在你已经准备好了。

执行

root@DESKTOP-MOGIJIA:/opt/playbook/aws-vpc-2layer# ansible-playbook -i 主机 vpc_create.yml PLAY [创建 vpc 子网 igw 路由表] **************** ********************************************************** ************** 任务 [aws_vpc:create_vpc] ****************************** ********************************************************** ************ 更改:[127.0.0.1] 任务 [aws_vpc:create_public_subnet] ************************* ********************************************************** ****** 更改: [127.0.0.1] => (item={u'pub_subnet_name': u'shimeji-wd-public-subnet-a', u'subnet_az': u'ap-northeast-1a ', u'pub_subnet_cidr': u'10.0.10.0/24'}) 更改: [127.0.0.1] => (item={u'pub_subnet_name': u'shimeji-wd-public-subnet-c', u' subnet_az': u'ap-northeast-1c', u'pub_subnet_cidr': u'10.0.20.0/24'}) 任务 [aws_vpc : create_private_subnet] ***************** ********************************************************** ************** 更改: [127.0.0.1] => (item={u'pri_subnet_cidr': u'10.0.30.0/24', u'pri_subnet_name': u'shimeji- wd-private-subnet-a', u'subnet_az': u'ap-northeast-1a'}) 已更改:[127.0.0.1] => (item={u'pri_subnet_cidr': u'10.0.40.0/24' , u'pri_subnet_name': u'shimeji-wd-private-subnet-c', u'subnet_az': u'ap-northeast-1c'}) 任务 [aws_vpc : create_igw] ********** ********************************************************** ****************************** 更改:[127.0.0.1] 任务 [aws_vpc:create_route_table] ***** ********************************************************** ***************************** 更改:[127.0.0.1] 播放回顾 ************ *** ************************************************** *** ************************************************** ********** 127.0.0.1 : 确定=5 已更改=5 无法访问=0 失败=0 已跳过=0 已获救=0 已忽略=0

是的,它工作正常。

在最后

单击此处查看我尊敬的前辈的文章
■ CloudFormation
https://beyondjapan.com/blog/2019/03/cloudformation1/
■ Terraform
https://beyondjapan.com/blog/2018/07/terraform-aws-network- module/

如果您觉得这篇文章有帮助,请点赞!
0
加载中...
0 票,平均:0.00 / 10
1,700
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

写这篇文章的人

关于作者

姬菇

证书:
- TOEIC 835
- LPIC304
- AWS 解决方案架构师助理
- AWS 解决方案架构师专业
- GCP 专业云架构师
- IPA SC(未注册)

戈薇,戈薇,
我身后的老头,就这样了。

这是我叔叔。 (2018)