注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure 免费套餐。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
使用 Jenkins 配置 CD3 以创建和导出 Oracle Cloud Infrastructure 资源
简介
利用云部署设计可交付 (CD3) 自动化工具包,您可以轻松将 Microsoft Excel 模板转换为功能完备的 Terraform 模块,从而轻松构建、导出和管理 Oracle Cloud Infrastructure (OCI) 资源。
该工具包还支持使用 OCI DevOps Git 服务和 Jenkins 管道进行无缝资源管理。
目标
- 只需单击一下即可启动 CD3 容器,然后使用 Jenkins 管道创建、导出 OCI 身份、网络和计算资源。
先决条件
-
使用 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 策略,用户或实例主体可以管理使用工具包创建或导出所需的服务。
-
部署堆栈的用户应有权启动 OCI 资源管理器堆栈、计算实例和网络资源。
任务 1:设置工具包容器
-
单击部署到 Oracle Cloud 以启动创建 CD3 WorkVM 的 OCI 资源管理器堆栈。
-
接受条款和条件。输入要创建的 workVM 的网络、区间、VM 名称、配置等。
注:要维护安全环境,请提供用于访问 VM 的特定源 CIDR 范围。不要使用
0.0.0.0/0
。 -
选中底部的运行应用部分,然后单击创建。
-
应用作业成功后,单击作业并向下滚动到日志末尾。
查找已创建的 VM 的详细信息以及要执行的命令以登录到工具包容器。下图中所示的示例输出。
登录容器后,将其连接到 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 。
-
在DevOps 的高级参数下,为
use_oci_devops_git
参数选择yes
。这将为生成的 terraform 文件创建 OCI DevOps Git 资源库,为状态文件创建 OCI 对象存储存储桶,以及为 DevOps 存储库中的更改通知 OCI 通知主题。
-
保存文件并执行
createTenancyConfig.py
以初始化环境并开始使用 CD3。python createTenancyConfig.py tenancyconfig.properties
-
验证输出。
-
接下来,要在 OCI 中创建资源,请遵循任务 3 或导出资源,请遵循任务 4 。
任务 3:在 OCI 中创建资源
任务 3.1:准备 Excel 和变量文件
-
从此处下载预填充的 Excel 模板:本教程的 cd3quickstart.xlsx 。根据您的环境修改区域、区间值并切换到容器。
-
从容器中打开
/cd3user/tenancies/<prefix>/terraform_files/<region>/compute/variables_<region>.tf
。在instance_ssh_keys
变量下,添加 Excel 表中指定的 SSH 密钥的变量名称:ssh_public_key 及其对应值(密钥内容)。 -
在
instance_source_ocids
变量下,包括源映像myimageocid
的 Excel 工作表中指定的变量名称,并将其 OCID 指定为对应的值。以下屏幕截图供参考。 -
按顺序运行以下命令以将上述本地更改与 DevOps Git 存储库同步。
cd /cd3user/tenancies/<prefix>/terraform_files git status git add -A . git commit -m "msg" git push
任务 3.2:登录到 Jenkins 并执行 setupoci 管道
-
启动 Jenkins 并使用容器中的以下命令访问它。
-
要启动 Jenkins,请使用
/usr/share/jenkins/jenkins.sh &
命令。 -
要访问 Jenkins,请使用此 URL
https://<IP Address of the machine hosting docker container>:8443
。
-
-
登录到 Jenkins。在仪表盘上,存在名称为
<prefix>
的文件夹。单击要使用的<prefix>
名称。它具有对应的 setupoci 管道和terraform_files
文件夹。单击 setupoci 管道和使用参数构建。注:如果首次访问 Jenkins URL,请设置登录身份证明。
-
在 Excel 模板部分下,上载在任务 3.1 中提取的 Excel 文件。
-
在 Workflow(工作流)下,选择 Create New Resources in OCI (Greenfield Workflow) 。
-
在 MainOptions 下,选择身份、网络和计算。
-
在 SubOptions 下,选择 Add/Modify/Delete Groups(添加/修改/删除组)、 Add/Modify/Delete Policies(添加/修改/删除策略)、 Create Network(创建网络)和 Add/Modify/Delete Instances/Boot Backup Policy(添加/修改实例/删除备份策略)。
-
单击生成。设置 oci 管道阶段按顺序执行。
任务 3.3:为每个服务计划提供审批
-
单击日志的身份阶段,然后单击身份应用管道构建的链接。在获取审批阶段下,单击日志并选择继续。检查应用阶段下的日志以验证创建的身份资源。
-
同样,从 setupoci 管道中的网络阶段,单击日志,然后单击网络应用管道构建的链接。在获取审批阶段下,单击日志并选择继续。查看应用阶段下的日志以验证创建的网络资源。
-
单击计算阶段日志。单击用于计算应用管道构建的链接。
注:您会注意到计算 terraform 管道失败。这是因为计算资源依赖于网络准备就绪。要解决此问题,请在网络应用管道成功后手动触发计算 terraform 管道。下一步将说明如何执行此操作。
-
单击计算应用管道的立即构建。管道阶段开始执行后,在获取审批阶段下,单击日志并选择继续。查看应用阶段下的日志以验证创建的计算资源。
-
执行创建网络可在 VCN 中创建 CD3 Excel 工作表中尚不存在的少数规则(因为这些详细信息最初来自“子网”选项卡)。要将它们同步到 Excel 文件,请使用与上面相同的 Excel 工作表再次构建 setupoci Pipeline ,将工作流设置为在 OCI 中创建资源,在主选项下选择网络,然后选择以下子选项。
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)
-
指定区间名称。单击构建并开始执行 setupoci Pipeline 阶段。
-
将使用安全规则、路由规则和 DRG 路由规则数据填充 Excel 表。将为这些服务生成 Terraform
tfvars
文件。 -
包含从 OCI 导出的数据的更新后的 Excel 文件位于特定 setupoci 构建的构建对象下。Excel 文件也存在于
/cd3user/tenancies/<prefix>
下的容器中。 -
单击网络阶段日志,然后单击指向网络应用管道构建的链接。terraform 计划应显示无更改,在 OCI 中推断这些服务,并且 CD3 处于同步状态。
-
这将在 OCI 中完成资源创建过程。验证在 OCI 控制台上创建的资源。
任务 4:从 OCI 导出资源
任务 4.1:下载 CD3-Blank-template.xlsx
文件
对于导出工作流,工具包将覆盖特定服务表中的任何现有数据。因此,建议使用默认情况下没有数据的 CD3-Blank-template.xlsx
。
从以下位置下载 CD3 空白模板:CD3-Blank-template.xlsx 。
任务 4.2:登录到 Jenkins
-
启动 Jenkins 并使用容器中的以下命令访问它。
-
要启动 Jenkins,请使用
/usr/share/jenkins/jenkins.sh &
命令。 -
要访问 Jenkins,请使用此 URL
https://<IP Address of the machine hosting docker container>:8443
。
-
-
登录到 Jenkins。
注:如果首次访问 Jenkins URL,请设置登录身份证明。
任务 4.3:执行 setupoci 管道
-
在 Jenkins 仪表盘上,存在名称为
<prefix>
的文件夹。单击要使用的<prefix>
名称。它具有对应的 setupoci 管道和terraform_files
文件夹。单击 setupoci 管道和使用参数构建。 -
在 Excel 模板部分下,上载在任务 4.1 中提取的 Excel 文件。
-
在工作流下,选择从 OCI(非绿地工作流)导出现有资源。
-
在 MainOptions 下,选择导出身份、导出网络和导出计算。
-
在 SubOptions 下,为身份选择 Export Compartments/Groups/Policies ,为网络选择 Export all Network Components ,为计算选择 Export Instances (exclude instances launch by OKE) 。
注:如果需要,请在 AdditionalFilters 下添加详细信息以筛选资源。
-
单击生成。设置 oci 管道阶段按每个服务的顺序执行。
-
在运行导入命令阶段下查看日志。如果显示为成功,则触发的相应地形管道的计划阶段应显示为无更改。
注:如果在计划中发现任何更改,请复核这些更改并根据需要应用。
-
包含从 OCI 导出的数据的更新后的 Excel 文件位于特定 setupoci 构建的构建对象下。Excel 文件也存在于
/cd3user/tenancies/<prefix>
下的容器中。
相关链接
确认
- Authors — Dipesh Kumar Rathod(基础设施首席云架构师)Lasya Vadavalli(高级云工程师)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Configure CD3 with Jenkins to Create and Export Oracle Cloud Infrastructure Resources
F95149-04
October 2024