注意:
- 此教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间示例值。完成实验室时,请将这些值替换为特定于您的云环境的值。
使用 CLI 配置 CD3 工具包以创建和导出 Oracle Cloud Infrastructure 资源
简介
通过云部署设计可交付项 (CD3) 自动化工具包,您可以轻松地将 Excel 模板转换为功能完备的 Terraform 模块,从而轻松构建、导出和管理 Oracle Cloud Infrastructure (OCI) 资源。
该工具包还支持使用 OCI DevOps Git 服务和 Jenkins 管道进行无缝资源管理。
目标
-
只需单击一下即可启动 CD3 容器资源管理器堆栈,并使用 CD3 CLI 创建 OCI 网络和 OCI 计算资源。
-
使用 CD3 CLI 导出 OCI 网络和 OCI 计算资源。
先决条件
-
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 策略,允许用户或实例主体管理使用工具包创建或导出所需的服务。
-
部署堆栈的用户应有权启动 OCI 资源管理器堆栈、OCI 计算实例和 OCI 网络资源。
任务 1:设置工具包容器
-
单击部署到 Oracle Cloud 可启动创建 CD3 workVM 的 OCI 资源管理器堆栈。
-
接受条款和条件。输入 workVM 的 Network(网络)、 Compartment(区间)、 Virtual Machine (VM) Name(虚拟机 (VM) 名称)、 Shape(配置)和其他详细信息。
注:要维护安全环境,请提供特定的源 CIDR 范围来访问 VM。不要使用
0.0.0.0/0
。 -
选中运行应用部分,然后单击创建。
-
应用作业成功后,单击该作业并向下滚动到日志末尾。
查找创建的 VM 的详细信息以及登录到工具包容器的要执行的命令。下图显示了示例输出。
登录容器后,按照任务 2 并连接到 OCI 租户以执行 OCI API。
任务 2:将容器连接到 OCI 租户
-
在容器内,导航到
cd /cd3user/oci_tools/cd3_automation_toolkit/user-scripts/
并打开tenancyconfig.properties
文件。 -
在 Required parameters 和 Auth Details Parameters 部分中添加必需的配置值。
注:在本教程中,我们将使用 API 密钥验证。保持
auth_mechanism
为其默认值。 -
转到 OCI 控制台的用户设置下,将公钥上载到 APIkeys 。将私有密钥放在容器内。复制所需的配置值,然后粘贴到
tenancyconfig.properties
文件中的相应参数下。 -
保留
outdir_structure_file
参数的默认值。这会将每个服务的生成的auto.tfvars
文件分组到其特定于服务的文件夹下。 -
对于 IaC 工具,可以选择 terraform 或 tofu 。默认值为 terraform。要使用 OpenTofu,请指定 tofu 。
注:保留 Advanced Parameters for DevOps(DevOps 的高级参数)部分,因为 Jenkins 设置不在本教程的范围内。要使用 Jenkins 运行工具包,请参阅使用 Jenkins 配置 CD3 以创建和导出 Oracle Cloud Infrastructure 资源。
-
保存该文件并运行
createTenancyConfig.py
以初始化环境并开始使用 CD3。python createTenancyConfig.py tenancyconfig.properties
-
验证输出。
接下来,要在 OCI 中创建资源,请遵循任务 3 并导出资源,请遵循任务 4。
任务 3:创建资源
任务 3.1:准备 Excel 和变量文件
-
从此处下载预填充的 Excel 模板: cd3quickstart.xlsx 。根据您的环境修改工作表中的区域和区间值,然后切换回容器。
-
使用下面的 scp 命令在容器
/cd3user/tenancies/cd3_demo_cli/
中添加 Excel 文件。注:CD3 容器中的 tenancies 文件夹映射到计算 VM 中的
/cd3user/mount_path
文件夹。使用cd3user
登录以避免权限问题。scp -i ~/.ssh/id_rsa /Users/xyz/cd3quickstart.xlsx cd3user@<workvm_ip>:/cd3user/mount_path/cd3_demo_cli/cd3quickstart.xlsx
-
从容器中打开
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/compute/variables_<region>.tf
。在instance_ssh_keys
变量下,添加在 Excel 表ssh_public_key
中指定的 SSH 密钥的变量名称及其对应值(密钥内容)。 -
在
instance_source_ocids
变量下,包括源图像myimageocid
的 Excel 工作表中指定的变量名称,并将其 OCID 指定为对应的值。
任务 3.2:运行 setUpOCI.py
脚本以生成资源 Terraform 文件
-
打开
/cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
文件并在cd3file
变量下添加 CD3 excel 文件路径。将 workflow_type 变量设置为create_resources
并保存文件。 -
将目录更改为
cd /cd3user/oci_tools/cd3_automation_toolkit/
并运行setUpOCI.py
脚本。python setUpOCI.py /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
注:如果是首次运行脚本,请为 Execute Script to fetch the compartment OCIDs into variables file 提示选择 y 。
-
从输出菜单中选择选项网络和计算,然后选择子选项:创建网络以创建 VCN 和子网,选择添加/修改/删除实例/引导备份策略以预配实例。
-
将目录更改为
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/network/
。运行 Terraform 命令来预配网络资源。terraform init terraform plan -out tfplan terraform apply tfplan
-
创建网络在 VCN 中创建一些尚未出现在 CD3 Excel 表中的规则(因为这些详细信息最初取自子网选项卡)。要将它们同步到 Excel 文件,请使用与上面相同的 Excel 表再次运行
setUpOCI
脚本。确保在cd3_demo_cli_setUpOCI.properties
文件中将工作流设置为创建资源。在主选项下选择 Network(网络),然后选择下面的子选项。Security Rules ---> Export Security Rules (From OCI into SecRulesinOCI sheet), Add/Modify/Delete Security Rules (Reads SecRulesinOCI sheet) Route Rules ---> Export Route Rules (From OCI into RouteRulesinOCI sheet), Add/Modify/Delete Route Rules (Reads RouteRulesinOCI sheet) DRG Route Rules ---> Export DRG Route Rules (From OCI into DRGRouteRulesinOCI sheet), Add/Modify/Delete DRG Route Rules (Reads DRGRouteRulesinOCI sheet)
-
成功完成后,Excel 模板中的
DRGRouteRulesinOCI
、RouteRulesinOCI
和SecRulesinOCI
表将填充相应的数据,cd3_demo_cli_seclists.auto.tfvars
、cd3_demo_cli_routetables.auto.tfvars
和cd3_demo_cli_drg-routetables.auto.tfvars
文件将生成在文件夹/cd3user/tenancies/cd3_demo_cli/terraform_files/<region_dir>/<service_dir>
下。 -
验证
terraform plan
和terraform apply
。运行 terraform 应用可完成从 OCI 导出安全规则、路由规则和 DRG 路由规则。现在,Terraform 状态应与 OCI 同步。 -
要预配计算资源,请将该目录更改为
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/compute/
并运行 Terraform 命令。terraform init terraform plan -out tfplan terraform apply tfplan
在 OCI 控制台中验证预配的资源。
任务 4:导出资源
任务 4.1:将 Excel 模板添加到容器
-
下载 CD3-Blank-template 并将其添加到位于
/cd3user/tenancies/cd3_demo_cli/
的容器中。注:cd3 容器中的 tenancies 文件夹映射到计算 VM 中的
/cd3user/mount_path
文件夹。使用cd3user
登录以避免权限问题。 -
导航到
/cd3user/tenancies/cd3_demo_cli/
文件夹并打开cd3_demo_cli_setUpOCI.properties
文件。 -
在变量
cd3file
下添加 CD3 Excel 文件路径。 -
将 workflow_type 参数设置为
export_resources
并保存文件。
任务 4.2:运行 setUpOCI.py
脚本
-
将目录更改为
cd /cd3user/oci_tools/cd3_automation_toolkit/
并运行setUpOCI.py
脚本。python setUpOCI.py /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
注:如果是首次运行脚本,请为 Execute Script to fetch the compartment OCIDs into variables file 提示选择 y 。
-
如果必须从多个区域导出资源,请提供逗号分隔的
region
值。如果未提供区域值,则工具包将从所有订阅的区域导出资源。 -
选择要导出的资源选项(网络和计算)。您可以选择仅从特定区间或所有区间导出资源。如果区间名称不唯一,应根据层次结构按以下格式指定。
Parent Compartment::Child Compartment1::Child Compartment2
-
要仅导出特定资源,请在出现提示时输入所需的筛选器值。
注:有关导出 OCI 网络资源和 OCI 计算资源的更多信息,请参阅导出 OCI 网络资源和导出 OCI 计算资源。
-
成功完成后,导出的资源数据将填充到输入 Excel 文件中。更新后的 Excel 工作表位于容器内的
/cd3user/tenancies/cd3_demo_cli
文件夹下,需要使用 scp 命令手动复制到本地系统。scp -i ~/.ssh/id_rsa cd3user@<workvm_ip>:/cd3user/mount_path/cd3_demo_cli/CD3-Blank-template.xlsx /Users/xyz/CD3-export.xlsx
-
具有 terraform 导入命令的服务特定
.tfvars
和.sh
文件在区域文件夹下的相应服务文件夹内生成:-
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region_dir>/network/
-
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region_dir>/compute/
对于 OCI 计算,关联的 ssh 公钥放置在
variables_<region>.tf
中的instance_ssh_keys
变量下,源 OCID 放置在instance_source_ocid
变量下。 -
任务 4.3:执行生成的 .sh
文件
-
在网络和计算服务文件夹中,运行生成的每个包含 Terraform 导入命令的
.sh
文件。注:对于 OCI 网络,在运行其他
.sh
脚本之前,请确保为 major_objects 运行.sh
脚本:sh import_commands_network_major-objects.sh
-
成功完成
.sh
脚本后,将生成 Terraform 状态文件,并将 terraform 计划更新为最新状态。
生成的此 Terraform 代码可以与 OCI 资源管理器一起使用,也可以由组织 CI/CD 进程利用来进一步管理。
要添加新资源或修改现有资源,请先将资源导出到 CD3,在导出的 Excel 模板中进行所需的更改,然后在 /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
文件中将 workflow_type 修改到 create_resources
并执行工具包。
相关链接
确认
- 作者 - Lasya Vadavalli(高级云工程师)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Configure CD3 Toolkit with CLI to Create and Export Oracle Cloud Infrastructure Resources
F87015-04
September 2024