注意:

使用 CLI 配置 CD3 工具包以创建和导出 Oracle Cloud Infrastructure 资源

简介

通过云部署设计可交付项 (CD3) 自动化工具包,您可以轻松地将 Excel 模板转换为功能完备的 Terraform 模块,从而轻松构建、导出和管理 Oracle Cloud Infrastructure (OCI) 资源。

该工具包还支持使用 OCI DevOps Git 服务和 Jenkins 管道进行无缝资源管理。

workflow (工作流)

目标

先决条件

任务 1:设置工具包容器

  1. 单击部署到 Oracle Cloud 可启动创建 CD3 workVM 的 OCI 资源管理器堆栈。

    Deploy_To_OCI

  2. 接受条款和条件。输入 workVM 的 Network(网络)Compartment(区间)Virtual Machine (VM) Name(虚拟机 (VM) 名称)Shape(配置)和其他详细信息。

    注:要维护安全环境,请提供特定的源 CIDR 范围来访问 VM。不要使用 0.0.0.0/0

  3. 选中运行应用部分,然后单击创建

  4. 应用作业成功后,单击该作业并向下滚动到日志末尾。

    查找创建的 VM 的详细信息以及登录到工具包容器的要执行的命令。下图显示了示例输出。

    rmstackoutput

    登录容器后,按照任务 2 并连接到 OCI 租户以执行 OCI API。

任务 2:将容器连接到 OCI 租户

  1. 在容器内,导航到 cd /cd3user/oci_tools/cd3_automation_toolkit/user-scripts/ 并打开 tenancyconfig.properties 文件。

  2. Required parametersAuth Details Parameters 部分中添加必需的配置值。

    注:在本教程中,我们将使用 API 密钥验证。保持 auth_mechanism 为其默认值。

  3. 转到 OCI 控制台的用户设置下,将公钥上载到 APIkeys 。将私有密钥放在容器内。复制所需的配置值,然后粘贴到 tenancyconfig.properties 文件中的相应参数下。

  4. 保留 outdir_structure_file 参数的默认值。这会将每个服务的生成的 auto.tfvars 文件分组到其特定于服务的文件夹下。

  5. 对于 IaC 工具,可以选择 terraformtofu 。默认值为 terraform。要使用 OpenTofu,请指定 tofu

    tenancyconfig_properties

    注:保留 Advanced Parameters for DevOps(DevOps 的高级参数)部分,因为 Jenkins 设置不在本教程的范围内。要使用 Jenkins 运行工具包,请参阅使用 Jenkins 配置 CD3 以创建和导出 Oracle Cloud Infrastructure 资源

  6. 保存该文件并运行 createTenancyConfig.py 以初始化环境并开始使用 CD3。

    python createTenancyConfig.py tenancyconfig.properties
    
  7. 验证输出。

    tenancyconfig_output

    接下来,要在 OCI 中创建资源,请遵循任务 3 并导出资源,请遵循任务 4。

任务 3:创建资源

任务 3.1:准备 Excel 和变量文件

  1. 从此处下载预填充的 Excel 模板: cd3quickstart.xlsx 。根据您的环境修改工作表中的区域区间值,然后切换回容器。

  2. 使用下面的 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
    
  3. 从容器中打开 /cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/compute/variables_<region>.tf。在 instance_ssh_keys 变量下,添加在 Excel 表 ssh_public_key 中指定的 SSH 密钥的变量名称及其对应值(密钥内容)。

    ssh_key

  4. instance_source_ocids 变量下,包括源图像 myimageocid 的 Excel 工作表中指定的变量名称,并将其 OCID 指定为对应的值。

    源代码

任务 3.2:运行 setUpOCI.py 脚本以生成资源 Terraform 文件

  1. 打开 /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties 文件并在 cd3file 变量下添加 CD3 excel 文件路径。将 workflow_type 变量设置为 create_resources 并保存文件。

    图像

  2. 将目录更改为 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

    图像

  3. 从输出菜单中选择选项网络计算,然后选择子选项:创建网络以创建 VCN 和子网,选择添加/修改/删除实例/引导备份策略以预配实例。

  4. 将目录更改为 /cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/network/。运行 Terraform 命令来预配网络资源。

    terraform init
    terraform plan -out tfplan
    terraform apply tfplan
    
  5. 创建网络在 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)
    
  6. 成功完成后,Excel 模板中的 DRGRouteRulesinOCIRouteRulesinOCISecRulesinOCI 表将填充相应的数据,cd3_demo_cli_seclists.auto.tfvarscd3_demo_cli_routetables.auto.tfvarscd3_demo_cli_drg-routetables.auto.tfvars 文件将生成在文件夹 /cd3user/tenancies/cd3_demo_cli/terraform_files/<region_dir>/<service_dir> 下。

  7. 验证 terraform planterraform apply。运行 terraform 应用可完成从 OCI 导出安全规则、路由规则和 DRG 路由规则。现在,Terraform 状态应与 OCI 同步。

  8. 要预配计算资源,请将该目录更改为 /cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/compute/ 并运行 Terraform 命令。

    terraform init
    terraform plan -out tfplan
    terraform apply tfplan
    

    在 OCI 控制台中验证预配的资源。

任务 4:导出资源

任务 4.1:将 Excel 模板添加到容器

  1. 下载 CD3-Blank-template 并将其添加到位于 /cd3user/tenancies/cd3_demo_cli/ 的容器中。

    注:cd3 容器中的 tenancies 文件夹映射到计算 VM 中的 /cd3user/mount_path 文件夹。使用 cd3user 登录以避免权限问题。

  2. 导航到 /cd3user/tenancies/cd3_demo_cli/ 文件夹并打开 cd3_demo_cli_setUpOCI.properties 文件。

  3. 在变量 cd3file 下添加 CD3 Excel 文件路径。

  4. workflow_type 参数设置为 export_resources 并保存文件。

任务 4.2:运行 setUpOCI.py 脚本

  1. 将目录更改为 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

    图像

  2. 如果必须从多个区域导出资源,请提供逗号分隔的 region 值。如果未提供区域值,则工具包将从所有订阅的区域导出资源。

  3. 选择要导出的资源选项(网络计算)。您可以选择仅从特定区间或所有区间导出资源。如果区间名称不唯一,应根据层次结构按以下格式指定。

    Parent Compartment::Child Compartment1::Child Compartment2
    
  4. 要仅导出特定资源,请在出现提示时输入所需的筛选器值。

    注:有关导出 OCI 网络资源和 OCI 计算资源的更多信息,请参阅导出 OCI 网络资源导出 OCI 计算资源

  5. 成功完成后,导出的资源数据将填充到输入 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
    
  6. 具有 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 文件

  1. 网络计算服务文件夹中,运行生成的每个包含 Terraform 导入命令的 .sh 文件。

    注:对于 OCI 网络,在运行其他 .sh 脚本之前,请确保为 major_objects 运行 .sh 脚本:sh import_commands_network_major-objects.sh

  2. 成功完成 .sh 脚本后,将生成 Terraform 状态文件,并将 terraform 计划更新为最新状态。

生成的此 Terraform 代码可以与 OCI 资源管理器一起使用,也可以由组织 CI/CD 进程利用来进一步管理。

要添加新资源或修改现有资源,请先将资源导出到 CD3,在导出的 Excel 模板中进行所需的更改,然后在 /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties 文件中将 workflow_type 修改到 create_resources 并执行工具包。

确认

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心