关于使用 Terraform 开发基础结构组件
您下载的 Terraform 模块包含单独的脚本以创建和设置各种基础结构组件。您可以查看和编辑这些脚本,了解将创建哪些组件以及每个组件的特征。
Terraform 目录的根级别包含主配置文件 main.tf,
, 该文件引用各种子目录中的配置文件。此目录还包含定义在 Terraform 配置文件中使用的变量的文件,或包含有关 Terraform 提供程序、数据资源或输出的信息的文件。此外,用于创建安全列表和路由表的 Terraform 配置文件也位于根级别。
Terraform 目录包含 modules
目录。modules
目录包含以下内容:
-
bastion
:用于创建基础主机。 -
compute
:用于创建 UNIX 和 Windows Oracle Cloud Infrastructure Compute 实例。 -
dbsystem
:用于创建 Oracle Cloud Infrastructure Database 系统。 -
filesystem
:用于创建 Oracle Cloud Infrastructure 文件存储文件系统。 -
loadbalancer
:用于创建 Oracle Cloud Infrastructure 负载平衡实例。 -
network
:用于创建虚拟云网络(VCN)、子网、Internet 网关、服务网关、动态路由网关(DRG)和网络地址转换(NAT)网关等网络资源。
关于要创建的基础结构组件
在创建任何基础结构组件之前,必须提供有关组件的类型、编号和分发的一些输入。例如,可以指定需要多少个应用程序实例,是要在单个可用性域中或在两个可用性域中创建所有资源,还是在数据库系统中创建所需的数据库的版本和版本等。
可以使用 Terraform 目录的根级别中的 terraform.tfvars
文件来提供此输入。在文本编辑器中打开 terraform.tfvars
文件,然后输入所需的信息。请参阅根级别目录中提供的 README
,了解您可以在该文件中使用的建议值。
默认情况下,Terraform 模块在两个可用性域中创建组件。这由 terraform.tfvars
文件中的变量 AD
的值控制。可以通过编辑此值查看或修改用于托管基础结构组件的可用性域。如果要在单个可用性域中创建组件,请在 terraform.tfvars
文件中将 AD
的值设置为所需的可用性域1, 2, or 3,
。如果要在两个可用性域中创建组件,请指定或修改可用性域的数量。
如果使用建议的默认值应用 Terraform 配置文件而不进行任何更改,则会在两个可用性域中创建以下基础结构组件。
-
名为
psftvcn
且 IP 地址范围为172.16.0.0/16.
的 VCN -
16 个子网,每个可用性域中都有 8 个。每个子网都有一个
/24
CIDR。例如:172.16.4.0/24.
每个子网名称的后缀指示创建该子网的可用性域。-
应用程序服务器的专用子网,名称为
appsubad1
和appsubad2
。 -
Web 服务器的专用子网,名称为
websubad1
和websubad2
。 -
负载平衡器的专用子网,名称为
lbsubad1
和lbsubad2
。 -
数据库系统的专用子网,名称为
dbsubad1
和dbsubad2
。 -
ElasticSearch 服务器的专用子网,名称为
essubad1
和essubad2
-
PeopleTools 实例的专用子网,名称为
toolsssubad1
和toolssubad2
。 -
文件系统服务的专用子网,名称为
fsssubad1
和fsssubad2
。 -
基础主机的公共子网,名称为
bassubad1
和bassubad2
。
-
-
以下路由表。在
terraform.tfvars
文件中指定的 VCN 的 DNS 标签会作为前缀添加到每个路由表名称。-
没有规则的默认路由表。
-
专用路由表
psftvcnpvtrt,
,它具有用于将对象存储通信路由到服务网关的路由规则,以及所有其他通信量路由到 NAT 实例。 -
公共路由表
psftvcnpubrt,
,该表包含用于将通信量路由到互联网关的路由规则。
-
-
以下安全列表:
-
默认安全列表。
-
应用程序服务器子网的安全列表,名称为
AppSecList
。 -
基础主机子网的安全列表,名称为
BastionSecList
。 -
数据库子网的安全列表,名称为
DBSecList
。 -
ElasticSearch 服务器子网的安全列表,名称为
ESSecList
。 -
文件系统服务器子网的安全列表,名称为
FSSSecList
。 -
负载平衡器子网的安全列表,名称为
LBSecList
。 -
PeopleTools 子网的安全列表,名称为
PToolsSecList
。 -
Web 服务器子网的安全列表,名称为
WebSecList
。
-
-
名为
psftvcnigw.
的 Internet 网关在terraform.tfvars
文件中指定的 DNS 标签作为前缀添加到 Internet 网关名称。Internet 网关将云网络的边缘与 Internet 连接。从 VCN 到 VCN 之外的公共 IP 地址通过互联网网关进行通信。 -
动态路由网关,名称为
psftvcndrg.
。在terraform.tfvars
文件中指定的 DNS 标签名称将作为动态路由网关名称的前缀。动态路由网关提供了 VCN 与互联网之外的目标之间的通信路径—例如,使用 IPSec VPN 或 Oracle Cloud Infrastructure FastConnect 向内部部署网络进行通信,或者通过远程 VCN 对等连接向其他区域中的 VCN 进行通信。 -
服务网关,名为
psftvcnsvcgtw.
在terraform.tfvars
文件中指定的 DNS 标签名称作为服务网关名称的前缀。通过服务网关,VCN 可以访问公共 Oracle Cloud Infrastructure 服务,如 Oracle Cloud Infrastructure 对象存储,但不会在公共互联网上公开 VCN。 -
以下 Oracle Cloud Infrastructure Compute 实例 , 分布在两个可用性域中。在
terraform.tfvars
文件中指定的环境前缀作为每个实例名称的前缀,区域、可用性域编号和计数具有后缀。每个实例都有一个关联的引导卷。-
应用程序服务器。创建的应用程序服务器实例数量及其形状由您在
terraform.tfvars
文件中指定的值决定。 -
定位主机。
-
-
两个 Oracle Cloud Infrastructure Database 系统,每个可用性域中都有一个。Oracle Cloud Infrastructure Database 系统的名称、版本、版本和其他属性由在
terraform.tfvars
文件中指定的值确定。Oracle Cloud Infrastructure Database 系统是在数据库子网dbsubad1
和dbsubad2.
中创建的 -
已创建一个用于存放 PeopleSoft 软件的文件系统。文件系统在文件系统子网
fssubad1
中创建。文件系统是在所有 Oracle Cloud Infrastructure Compute 实例上装载的。 -
两个负载平衡器,每个可用性域中都有一个负载平衡器。在
terraform.tfvars
文件中指定的环境前缀为每个负载平衡器名称的前缀,并且区域和计数为后缀。负载平衡器位于 Web 服务器子网websubad1
和websubad2.
还将创建负载平衡器的后端集和监听程序。
使用 Terraform 创建基础结构组件
在安装 Terraform 以及 OCI 提供程序并在本地系统上设置环境变量后,即可应用 Terraform 模块在 Oracle Cloud Infrastructure 中创建基础结构组件。
- 在本地系统上,打开终端或启动 Windows PowerShell。导航到 Terraform 模块所在的目录。
- 输入:
terraform apply
- 当系统提示您确认操作时,输入
yes.
Apply complete! Resources: 90 added, 0 changed, 0 destroyed.
在命令输出的 Outputs
部分中,Terraform 显示已创建实例的公共和专用 IP 地址。记下要连接到的实例的 IP 地址。
如果您遇到任何错误,则可以修复这些错误并再次运行 terraform apply
。请确保在首次运行此命令的同一目录中重新运行此命令。Terraform 检查组件的当前状态,并创建不存在的组件。但请注意,如果您在不同目录或者具有相同 Terraform 模块的其他本地系统中运行 Terraform,Terraform 会将此模块视为新的设置,并创建在各种配置文件中指定的所有资源。如果要在不同目录或本地系统中运行 Terraform 来管理现有资源,请将 Terraform 状态文件从现有目录复制到新目录或系统。但是,通常,建议您不要在一个系统或目录中使用 Terraform 来管理由 Terraform 在其他系统或目录中创建的组件。