注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure 免费套餐。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
利用 Terraform 加速 Oracle Cloud Infrastructure Architect 专业认证
简介
要获得 Oracle Cloud Infrastructure (OCI) Architect Professional 认证,您需要深入了解 Oracle Cloud 和实际操作体验。此教程利用 Terraform 的基础设施即代码 (IaC) 来加快您的旅程。
下图 1 描述了要部署的目标 OCI 体系结构。右侧概述了 OCI Architect Professional Certification (2024) 实验室的结构化方法,分为七个连续步骤。通过利用针对认证考试实验室量身定制的预构建 Terraform 代码片段,可自动执行重复性任务,从而腾出宝贵的时间专注于掌握基本的 OCI 概念。这种方法不仅可以加速实验室的完成,还可以促进对平台的更深入了解。
图 1:OCI Architecture Professional 认证实验室 1 —架构和手动流程与自动化流程
手动方法的缺点
OCI 认证考试动手实验室的手动方法可能是一个重大障碍。一些缺点是:
- 容易出错:重复性手动任务会增加人为错误的风险,从而导致错误、遗漏步骤和延迟。
- 耗时:复杂的工作流非常耗时,阻碍了进度并限制了实践。
- 不可扩展:要求复制和粘贴、引入错误并增加更正工作。
- 测试瓶颈:评估手动任务是主观的,这妨碍了准确的性能衡量和就绪。
- 文档缺点:依赖于非正式的人工输入、不一致的实践以及维护过程中的挑战。
- 超越手动疼痛:
- 传统方法会产生全无压力。一个错过的步骤可能会破坏进度,增加不必要的压力,并掩盖真正的理解。
- 这些方法模糊了基本技能和强制性任务之间的界限。在繁琐的设置上浪费了宝贵的实践时间,阻碍了学习和 OCI 技能掌握。
更快掌握 OCI 技能:自动化的强大功能
此教程演示如何通过自动执行任务、重点关注核心技能和缩短练习时间来加速 OCI 认证。
主要优点:
- 重点学习:自动执行重复性任务,腾出时间来掌握核心概念,并加深理解和知识保留。
- 按需练习:通过选择实验室的哪个部分来实现自动化、个性化学习速度和加速就绪,从而获得灵活性。
- 提高效率:通过自动化将准备时间缩短多达 80%。
其他福利:
- 可扩展性和成本效益:根据需求轻松扩展或收缩基础设施,从而节省成本。
- 减少错误:消除人为错误,确保始终安全正确地预配基础设施。
为了加快您的 OCI Architect Professional Certification (2024) 旅程,我们将使用 Terraform 自动完成图 1 中所示的练习 1:Oracle Cloud Infrastructure Architect Professional 。这种自动化方法可以扩展到其他认证实验室和现实世界的云部署。
网络安全组 (Network Security Group,NSG) 作为另一 NSG(而非 CIDR 块)的入站源
此教程探讨 OCI 中的网络安全组及其如何对虚拟云网络 (VCN) 中的网络流量进行细粒度控制。网络安全组充当虚拟防火墙,用于控制对 VCN 内资源的网络访问。例如 OCI Compute 实例、Kubernetes 集群或数据库。通过启用资源之间的控制而不是子网之间的控制,网络安全组提供了比安全列表更大的灵活性。
通过 7 个步骤实现半自动化混合方法
OCI Architect Professional 认证动手实验室虽然全面,但非常耗时。请考虑练习 1:Oracle Cloud Infrastructure Architect Professional ,至少需要 25 分钟才能完成。通过使用 Terraform 自动执行 VCN、NSG 和虚拟机 (Virtual Machine,VM) 创建等重复性任务,您这次可以大幅减少多达 80%,重点关注核心安全概念,而不是繁琐的手动步骤。建议的半自动化方法提供了灵活性,允许您选择要自动执行的任务。
目标
- 使用 Terraform 加速 Oracle Cloud Infrastructure Architect Professional 认证准备。
先决条件
-
具备基本的 Terraform 知识。初学者必须完成 Oracle Cloud Infrastructure Architect Professional 或任何初学者指南,例如 Terraform for_each:带示例的简单教程。
-
将 OCI Cloud Shell 、Oracle Resource Manager (ORM) 或 IDE(例如 Visual Studio )与 Terraform 插件一起使用。
任务 1:创建虚拟云网络 (VCN)
手动选项:
使用 OCI VCN 向导创建核心网络资源:VCN、互联网网关、路由表、安全列表、公共和专用子网。有关更多信息,请参见 Virtual Networking Quickstart 。
-
转到 OCI 控制台,导航到网络、虚拟云网络并创建新的 VCN。
-
单击 VCN 信息并记下 VCN 、专用子网和公共子网 OCID(图 2)。
-
将 OCID 添加到
input.auto.tfvars
(或terraform.tfvars
)文件中,如部署选项部分中所示。
默认情况下,create_vcn
标志处于关闭状态(从 OCI 控制台手动创建 VCN)。收集 VCN OCID 和子网 OCID 并将其添加到 input.auto.tfvars
文件。
# Step 1a - Create VCN using VCN Wizard (create_vcn flag off)
create_vcn = false
# Copy from the console the VCN OCIDs and subnets (public, Private) OCIDs.
vcn_id = "REPLACE_CREATED_VCN_OCID_HERE"
private_subnet_id = "REPLACE_CREATED_PRIVATE_SUBNET_OCID_HERE"
public_subnet_id = "REPLACE_CREATED_PUBLIC_SUBNET_OCID_HERE"
图 2:用于收集 VCN OCID、公共子网 OCID 和专用子网 OCID 的控制台 VCN 视图
自动选项:
使用以下步骤创建 VCN。
-
要自动创建 VCN 和所有网络资源,请在
input.auto.tfvars
文件中将create_vcn
标志设置为true
。 -
指定 VCN、公共子网、专用子网 CIDR 块和主机名前缀。
# Step 1b - Create VCN using Terraform. Provided the CIDR Blocks for the # VCN, Subnets and all other required input (host_name_prefix). create_vcn = true # Provide the VCN & Subnet CIDR Blocks as well as host name prefix vcn_cidr_block = "10.0.0.0/16" public_subnet_cidr_block = "10.0.0.0/24" private_subnet_cidr_block = "10.0.1.0/24" host_name_prefix = "phxapl4"
任务 2:创建两个 NSG(NSG-01 和 NSG-02)
手动选项:
使用以下步骤创建两个 NSG(NSG-01 和 NSG-02):
-
选择在任务 1 中创建的 VCN。
-
在资源下,单击网络安全组。
-
单击创建网络安全组并输入以下信息。
- 名称:输入一个名称。例如,
<REGION-KEY>-AP-LAB01-NSG-01
。 - 创建区间:输入工作区间。
- 单击创建。
- 名称:输入一个名称。例如,
-
对第二个名为
<REGION-KEY>-AP-LAB01-NSG-02
的 NSG 重复步骤 1 到 3。
自动选项:
以下 Terraform 代码将创建两个 NSG(NSG-01 和 NSG-02)。
resource "oci_core_network_security_group" "nsg-01" {
count = (var.create_vcn && var.create_nsg_1) ? 1 : 0
#Required
compartment_id = var.compartment_id
vcn_id = var.create_vcn ? oci_core_vcn.this.*.id[0] : var.vcn_id
display_name = "${var.display_name_prefix}-TF-NSG-01"
}
resource "oci_core_network_security_group" "nsg-02" {
count = (var.create_vcn && var.create_nsg_2) ? 1 : 0
#Required
compartment_id = var.compartment_id
vcn_id = var.create_vcn ? oci_core_vcn.this.*.id[0] : var.vcn_id
display_name = "${var.display_name_prefix}-TF-1-NSG-02"
}
要创建两个 NSG,请将 create_nsg_1
和 create_nsg_2
标志设置为 true
。
# Step 2: Create two(2) empty Network Security Groups (NSG-01 & NSG-02).
create_nsg_1 = true
create_nsg_2 = true
任务 3:使用 Terraform 启动四个 VM 并运行 Internet 控制消息协议 (Internet Control Message Protocol,ICMP) 试通测试
假设您熟悉从 OCI 控制台手动启动 VM。有关详细信息,请参阅创建实例。
注:我们仅提供了 Terraform 自动化选项来创建 4 个 VM(公共子网中 3 个 VM,专用子网中 1 个 VM)。
启用 create_vm_1_3
标志以指示 Terraform 创建三个 VM(VM-01、VM-02 和 VM-03)。
# Step 3a: Launch three(3) VMs(VM-01, VM-02, VM-03) in the public subnet.
create_vm_1_3 = true
要在公共子网中创建三个计算实例,我们在下面的 Terraform 代码中使用了 count
元参数。与更复杂的 for_each
元参数相比,这种简洁的方法简化了创建过程。将 count
设置为 3 会自动生成索引为 0、1 和 2 的实例,从而提高代码的可读性和效率。
resource "oci_core_instance" "VM1-3" {
count = (var.create_vm_1_3) ? 3 : 0
availability_domain = "GqIF:PHX-AD-1"
compartment_id = var.compartment_id
create_vnic_details {
assign_ipv6ip = "false"
assign_private_dns_record = "true"
assign_public_ip = "true"
subnet_id = var.create_vcn ? oci_core_subnet.My-Public-Subnet.*.id[0] : var.public_subnet_id
#nsg_ids = (var.create_vcn && var.create_nsg_1) && (count.index == 2) ? [oci_core_network_security_group.nsg-1.*.id[0]] : []
nsg_ids = (var.automate_step_4 && var.create_nsg_1) ? (var.create_vcn ? [oci_core_network_security_group.nsg-1.*.id[0]] : [oci_core_network_security_group.nsg-01.*.id[0]]) : []
}
display_name = "${var.display_name_prefix}-VM-0${count.index + 1}"
metadata = {
"ssh_authorized_keys" = "${file(var.ssh_public_key)}"
}
shape = "VM.Standard.A1.Flex"
shape_config {
memory_in_gbs = "6"
ocpus = "1"
}
source_details {
source_id = var.amper_image_id
source_type = "image"
}
}
注:要通过 SSH 访问公共 VM,请生成您自己的 SSH 密钥对。有关更多信息,请参见 Generate SSH keys 。
接下来,启用 create_vm_4
标志以指示 Terraform 在专用网络中创建 VM-04。
# Step 3b: Launch the fourth VM (VM-04) in the private subnet.
create_vm_4 = true
这是在专用子网中创建第四个实例 (VM-04) 的 Terraform 代码的一部分。
resource "oci_core_instance" "vm-4" {
count = (var.create_vm_4) ? 1 : 0
availability_domain = "GqIF:PHX-AD-1"
compartment_id = var.compartment_id
create_vnic_details {
#assign_ipv6ip = "false"
assign_private_dns_record = "true"
assign_public_ip = "false"
subnet_id = var.create_vcn ? oci_core_subnet.My-Private-Subnet.*.id[0] : var.private_subnet_id
#nsg_ids = (var.create_vcn && var.create_nsg_1) ? [oci_core_network_security_group.nsg-2.*.id[0]] : []
nsg_ids = (var.automate_step_6 && var.create_nsg_2) ? (var.create_vcn ? [oci_core_network_security_group.nsg-2.*.id[0]] : [oci_core_network_security_group.nsg-02.*.id[0]]) : []
}
display_name = "${var.display_name_prefix}-VM-04"
shape = "VM.Standard.A1.Flex"
shape_config {
memory_in_gbs = "6"
ocpus = "1"
}
source_details {
source_id = var.amper_image_id
source_type = "image"
}
}
手动 ICMP 回显测试:观察 NSG 对流量的影响。
-
转到 OCI 控制台,导航到计算和实例。将列出所有四个实例。
-
请注意这三个实例的公共 IP 地址(VM-01、VM-02、VM-03)。
-
在您的计算机上,对每个 VM 实例的公共 IP 地址执行 ping 操作。
预期结果:
-
所有实例都将失败,因为安全列表没有 ICMP 回显规则。
-
默认安全规则允许通过 SSH 访问所有公共 VM(端口 22)。
Automated ICMP Echo Testing:此测试使用 Terraform local-exec
预配器自动执行。
-
我们定义了一个数组
VM1_3
,其中包含表示三个公共 VM 的三个元素,以及一个变量icmp_ping_count
来指定 ping 的数量。 -
以下 Terraform 代码将 ICMP 回显测试自动从本地计算机发送到
VM-02
。resource "null_resource" "icmp_ping_VM2_fromlocal" { depends_on = [oci_core_instance.VM1-3[1]] count = (var.icmp_pingvm2_fromlocal) ? 1 : 0 # Ping VM-02 from local Computer provisioner "local-exec" { command = "ping -c ${var.icmp_ping_count} ${oci_core_instance.VM1-3[1].public_ip}" } }
编辑 input.auto.tfvars
文件以设置 icmp_ping_count
变量的值。要允许从本地计算机对三个公共 VM 中的每个 VM 执行 ping 操作,请将 icmp_pingvm?_fromlocal
标志设置为 true
(其中 1、2 或 3 表示特定 VM)。
# ICMP ping from Local Computer (First Attempt)
icmp_pingvm1_fromlocal = true
icmp_pingvm2_fromlocal = true
icmp_pingvm3_fromlocal = true
任务 4:配置 ICMP 入站流量并将 vNICs 连接到 NSG-01
手动选项:
配置 VM-03 与 NSG-01 之间的通信所需的以下子任务。
任务 4.1:在联网中添加新的入站规则
要更新第一个 NSG (NSG-01),请按照图 3 中概述的步骤操作。
-
选择 VCN。
-
在网络安全组下,选择 NSG-01,然后单击添加规则。
-
输入以下信息,然后单击添加。
- 源类型:输入 CIDR 。
- 源 CIDR:输入
0.0.0.0/0
。 - IP 协议:选择 ICMP 。
- 类型:输入 8 。
- 代码:选择全部。
图 3:将入站规则添加到 NSG-01 以允许从 Internet 进行 ICMP Ping
任务 4.2:将第三个 VM (VM-03) 配置为指向 NSG-01
要将 NSG-01 连接到 VM-03 虚拟网络接口 (virtual network interface,VNIC),请按照图 4 中概述的步骤操作。
-
在计算下,单击实例、 VM-03 和查看详细信息。
-
选择连接的 vNICs,然后单击 Primary vNIC(主 vNIC)。
-
在 vNIC 信息下,单击 Network Security Group(网络安全组)旁边的 Edit(编辑)链接,然后选择 NSG-01。
-
单击 Save Changes(保存更改)。
图 4:将 NSG-01 连接到 VM-03 vNIC
自动选项:
转到 input.auto.tfvars
文件并打开 automate_step_4
标志。
# Step 4: Add CIDR ingress rule in Network, attach VM-03 vNIC with NSG-01.
automate_step_4 = true
注:
- 强烈建议您手动执行配置任务,同时利用 Terraform 进行自动资源预配。
- 如果选择 Terraform 自动化,请记得重新创建(销毁并重新创建)VM 以成功将 NSG-01 连接到 VM-03 vNIC。
- 无论选择哪种方式,实验室都要求进行 ICMP ping 测试。
手动检查:从本地计算机对 VM-01、VM-02 和 VM-03 的公共 IP 地址执行第二次 ICMP 回显测试 (ping)。
结果
- 所有 ping 都会失败。只有第三个实例 (VM-03) 成功响应。
- VM-03 由于其 vNIC 与 NSG-01 的连接而响应 ping(图 4),该连接允许入站 ICMP 流量(图 3)。
自动检查:导航到 input.auto.tfvars
文件并将所有 icmp_pingvm?_fromlocal
标志设置为 true(其中 1、2 或 3 表示特定 VM)。
# ICMP ping from Local Computer (Second Attempt)
icmp_pingvm1_fromlocal = true
icmp_pingvm2_fromlocal = true
icmp_pingvm3_fromlocal = true
任务 5:在嵌套两个 NSG 之前运行 ICMP Ping
手动选项:
最初尝试从三个公共 VM ping VM-04 的专用 IP 地址。
- 通过 SSH 访问公共子网中的所有计算实例(VM-01、VM-02、VM-03)。
- 从每台服务器对 VM-04 的专用 IP 地址执行 ping 操作。
预期结果:所有 ping 尝试都将失败。要启用连接,需要嵌套 NSG 体系结构。
自动选项:
将每个公共 VM(VM-01、VM-02 和 VM-03)的 icmp_test_from_vm?
标志设置为 true。替换为每个标志名称中的特定 VM 编号(1、2 或 3)。
# Step 5: SSH to VM-01, VM-02, VM-03 and ping VM-04 (First Attempt).
icmp_test_from_vm1 = true
icmp_test_from_vm2 = true
icmp_test_from_vm3 = true
此选项利用 Terraform remote-exec
预配器自动执行 ICMP 测试。您需要指定与创建 VM 期间使用的公共密钥相对应的专用 SSH 密钥。shell 脚本 ping_script.sh
迭代通过 icmp_ping_count
定义的试通次数。
resource "null_resource" "icmp_ping_vm4_from_vm1" {
depends_on = [oci_core_instance.VM1-3[0]]
count = (var.icmp_test_from_vm1) ? 1 : 0
connection {
agent = false
host = oci_core_instance.VM1-3[0].public_ip
user = "opc"
private_key = file(var.ssh_private_key)
}
# At this stage we assume that the ping_script.sh is copied under /home/opc
provisioner "remote-exec" {
inline = [
"echo \" PING PRIVATE IP ${oci_core_instance.vm-4[0].private_ip}\"",
"chmod +x ping_script.sh",
"export TARGET_IP=${oci_core_instance.vm-4[0].private_ip}",
"export PING_COUNT=${var.icmp_ping_count}",
"sh ping_script.sh",
]
}
}
任务 6:配置嵌套 NSG(NSG-01 和 NSG-02)
手动选项:
使用指定 NSG-01 作为源的入站规则配置第二个 NSG (NSG-02),从而启用两个 NSG 之间的 ICMP 流量流。
任务 6.1:在网络(虚拟云网络)中添加入站规则
-
在 VCN (VCN-01) 下,单击安全规则。
-
选择 NSG-02 ,然后单击添加规则。
-
输入以下信息,然后单击添加。
- 源类型:选择 Network Security Group(网络安全组)。
- 来源:输入 NSG-01 。
- IP 协议:选择 ICMP 。
- 类型:输入 8 。
- 代码:选择全部。
图 5:将 NSG-01 作为源添加到 NSG-02 入站规则
任务 6.2:将第四个 VM (VM-04) 配置为指向 NSG-02
-
在 VM-04 的 vNIC 信息(图 6)下,单击 NSG 旁边的 Edit(编辑)链接,然后选择 NSG-02 。
-
单击保存更改。
图 6:将 NSG-02 连接到 VM-04 vNIC
自动选项:
要自动执行此任务,请在 input.auto.tfvars
文件中将 automate_step_6
设置为 true。
# Step 6: Add NSG-01 as ingress rule source, attach NSG-02 to VM04 vNIC.
automate_step_6 = true
任务 7:为嵌套 NSG 运行最终 ICMP 回显测试
手动端到端测试:
重新尝试从公共 VM 对 VM-04 的专用 IP 地址执行 ping 操作。
-
通过 SSH 访问公共子网中的三个实例(VM-01、VM-02、VM-03)。
-
从每个 IP 对 VM-04 的专用 IP 执行 ping 操作。只有 VM-03 成功,如图 1 所示。
解释: VM-04 的 vNIC 现在受 NSG-02 内的规则和缺省安全列表的规则约束。NSG-01 配置为 NSG-02 的入站规则源,允许来自 Internet 的流量。
自动化端到端测试:
使 Terraform 自动执行 ICMP 回显试通测试。
-
对于 3 个 VM(VM-01、VM-02 和 VM-03),将
icmp_test_from_vm?
标志设置为true
。 -
如图 1 的左侧部分所示,只有 VM-03 成功 ping VM-04。
# Step 7: SSH to VM-01, VM-02, VM-03 and ping VM-04 (Second Attempt).
icmp_test_from_vm1 = true
icmp_test_from_vm2 = true
icmp_test_from_vm3 = true
图 7 显示在建立到 VM-03 的 SSH 连接后执行的多次 ICMP ping 尝试的结果。此图比较了实施嵌套 NSG 之前和之后的 ping 结果。
图 7:将 NSG-02 嵌套到 NSG-01 并将 vNICs 连接到 VM 之前和之后的 Ping 结果
注:使用 Terraform 时,在从手动配置切换后重新创建 VM,以确保将 NSG-02 正确链接到 VM-04 vNIC。
部署选项
选项 1:使用 Terraform 命令行界面 (Community Edition,CLI)
在使用 Terraform CLI 运行 Terrafrom 命令来规划和部署基础设施之前,您需要使用本地计算机或 OCI Cloud Shell 上的特定环境详细信息更新提供的 Terraform 配置。请从此处下载完整的 Terraform 源代码: oci-blog-fast-tracking-apcertif-main.zip 。您需要为环境定制的唯一文件是 input.auto.tfvars
文件(同样命名的文件是 terraform.tfvars
)。例如,您可以指定已用计算机映像 (amper_image_id
) 的 OCID 以及将在其中创建实验室资源的区间 (compartment_id
) 的 OCID(仅在需要时修改默认值)。该软件包提供了有关设置环境、执行实验以及了解网络和安全概念的全面说明。它包含详细的指南、提示和优秀实践,可帮助您增强 OCI 高级学习体验。
##########################################################################
# Terraform module: Nested NSGs - NSG-01 as Ingress source to NSG-02. #
# #
# Copyright (c) 2024 Oracle Author: Mahamat Hissein Guiagoussou #
##########################################################################
# Working Compartment
compartment_id = "REPLACE_WORKING_COMPARTMENT_OCID_HERE"
# Image OCID - https://docs.oracle.com/en-us/iaas/images/
amper_image_id = "REPLACE_INSTANCE_REGIONAL_IMAGE_OCID_HERE"
# Region based display name prefix
display_name_prefix = "AP-LAB01-1" # Replace with your own prefix
##########################################################################
# Step 1a - Create VCN using VCN Wizard (turn off the create_vcn flag), #
##########################################################################
create_vcn = false
vcn_id = "REPLACE_VCN_OCID_HERE"
private_subnet_id = "REPLACE_PRIVATE_SUBNET_OCID_HERE"
public_subnet_id = "REPLACE_PUBLIC_SUBNET_OCID_HERE"
##########################################################################
# Step 1b - Create VCN using Terraform. Provide the CIDR Blocks for the #
# VCN, Subnets and other required input (host_name_prefix). #
##########################################################################
cvcn_cidr_block = "10.0.0.0/16"
public_subnet_cidr_block = "10.0.0.0/24"
private_subnet_cidr_block = "10.0.1.0/24"
host_name_prefix = "phxapl4"
##########################################################################
# Step 2: Create two(2) empty Network Security Groups: NSG-01 & NSG-02. #
##########################################################################
create_nsg_1 = false
create_nsg_2 = false
##########################################################################
# Step 3a: Launch three VMs(VM-01, VM-02, VM-03) in the public subnet. #
##########################################################################
create_vm_1_3 = false
##########################################################################
# Step 3b: Launch the fouth VM (VM-04) in the private subnet. #
##########################################################################
create_vm_4 = false
# Shape Definition
shape_name = "VM.Standard.A1.Flex"
shape_memory_in_gbs = "6"
shape_numberof_ocpus = "1"
# Ping all public VM from Local Computer
icmp_pingvm1_fromlocal = false
icmp_pingvm2_fromlocal = false
icmp_pingvm3_fromlocal = false
# Compute Instance SSH keys
ssh_public_key = "~/cloudshellkey.pub"
ssh_private_key = "~/cloudshellkey"
# Ping VM-04 from Public VMs (VM-02, VM-02, and VM-03) via SSH
icmp_test_from_vm1 = false
icmp_test_from_vm2 = false
icmp_test_from_vm3 = false
##########################################################################
# Step 4: Add CIDR ingress rule in Network & Attach VM3 vNIC with NSG-01 #
##########################################################################
automate_step_4 = false
##########################################################################
# Step 5: SSH to VM-01, VM-02, VM-03 and ping VM-04 (First Attempt). #
##########################################################################
##########################################################################
# Step 6: Add NSG-01 as ingress rule source, Attach VM4 vNIC with NSG-02 #
##########################################################################
automate_step_6 = false
##########################################################################
# Step 7: SSH to VM-01, VM-02, VM-03 and ping VM-04 (Second Attempt). #
##########################################################################
# Number of time ping is executed
icmp_ping_count = "REPLACE_NUMBER_OF_PING_ATTEMPTS_HERE"
选项 2:使用 Oracle Resource Manager(变量输入样例)
通过定义变量(例如 amper_image_id
,compartment_id
)、预配网络资源 (create_vcn
,create_msg_1/2
)、创建 VM (create_vm_1_3
,create_vm_4
,shape_name
)、ICMP ping(icmp_pingvm1_fromlocal
,icmp_test_from_vm1
) 以及执行部署基础结构的计划来创建 Oracle 资源管理器堆栈。
后续步骤
使用 Terraform 的基础设施即代码 (IaC) 原则通过加速部署和增强安全性显著增强了基础设施管理。例如,在 OCI Architect Professional Certification (2024) 练习 1:成为 OCI Architect Professional (2024) 中手动配置嵌套 NSG 通常需要大约 25 分钟。
利用 Terraform,我们显著缩短了供应和配置复杂 OCI 资源所需的时间,显著提高了效率。这为管理复杂网络安全配置的 OCI 用户带来了可衡量的时间和成本节省。此外,IaC 还可以提高一致性并降低人为错误的风险,使其成为学习和实际客户实施的有价值的模型。要了解有关将 IaC 与 Terraform 或其他类似工具结合使用以满足 OCI 自动化需求的更多信息,请考虑在剩余的 OCI Architect Professional 认证实验室中应用学到的原则,同时了解 OCI 参考架构和优秀实践。
确认
- 作者 — Mahamat Hissein Guiagoussou(首席云架构师)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Accelerate Oracle Cloud Infrastructure Architect Professional Certification with Terraform
G13859-01
August 2024