注:
- 此教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间示例值。完成实验室时,请将这些值替换为特定于云环境的那些值。
创建 OCI DevOps 项目,为微服务设置权限和代码资料档案库
简介
这是六个部分教程系列的三个部分,其中展示了如何使用 Golang 微服务在 OKE 集群上部署一组临时资源,这些服务表示 OCI SDK、OCI-CLI、资源管理器、OCI DevOps 和 Helm 部署和销毁 Apache Airflow 的用法。
目标
在本教程中,您将了解如何创建 OCI DevOps 项目、微服务的设置权限和代码存储库。
先决条件
- 完成此学习路径中的上一教程第 2/6 部分 - 准备和配置 OCI 资源管理器堆栈以便在 OKE 上创建额外的节点
任务 1:创建动态组和策略
- 
    创建 DevOps 服务所需的动态组。有关详细信息,请参阅动态组。 - 
        使用以下匹配规则创建以下动态组: 动态组 匹配规则 DevOpsDynamicGroup 任何 {resource.type = 'devopsdeploypipeline',resource.type = 'devopsbuildpipeline',resource.type = 'devopsrepository',resource.type = 'devopsconnection'} DeployDynamicGroup 所有 {resource.type = ‘ devopsdeploypipeline ’} BuildPipelineDynamicGroup ALL {resource.type = 'devopsbuildpipeline'} ConnectionDynamicGroup ALL {resource.type = ‘ devopsconnection ’} 
 
- 
        
- 
    为您的 DevOps 用户创建一个用户组。有关更多信息,请参见用户组。 - 
        创建名为 oci-devops-users 的组。 
- 
        添加用于设置 OCI CLI 的用户,此用户将用于从微服务“go-microservice”与 OCI 进行交互。微服务将调用 OCI 资源来触发构建管道和 kubeconfig 创建。 
- 
        在本教程中,我们使用添加到“oci-devops-users”组的“devmaster”。  
 
- 
        
- 
    为 DevOps 服务创建策略。有关更多信息,请参见 IAM 策略。 - 
        创建名为 OCILabDeployPolicy 的策略。 Allow dynamic-group DeployDynamicGroup to manage all-resources in oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to use devops-family in oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to manage repos in oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to manage all-artifacts in oci-resource-manager-lab
- 
        创建名为 OCILabBuildPolicy 的策略。 Allow dynamic-group BuildPipelineDynamicGroup to manage repos in compartment oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to read secret-family in tenancy Allow dynamic-group BuildPipelineDynamicGroup to manage devops-family in compartment oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to manage all-artifacts in tenancy Allow dynamic-group BuildPipelineDynamicGroup to use ons-topics in compartment oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to read cluster-node-pools in compartment oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to use clusters in compartment oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to manage virtual-network-family in tenancy Allow group oci-devops-users to manage devops-family in compartment oci-resource-manager-lab Allow group oci-devops-users to manage repos in compartment oci-resource-manager-lab
- 
        创建名为 ConnectionsPolicy 的策略。 Allow dynamic-group ConnectionDynamicGroup to read secret-family in oci-resource-manager-lab
 
- 
        
任务 2:设置 Vault 和注册表
- 
    为 Docker 映像和 Helm 图表创建以下 OCI 注册表。有关详细信息,请参阅 OCI 注册表。 资料档案库名称 go-login(专用) go-microservice(专用) 气流 - 机架/气流(专用) helm-go-login/chart-go-login(专用) helm-go-microservices/chart-go-microservice(专用)  - 
        记下您的注册表 namespace ,以后需要这样做。  
 
- 
        
- 
    在用户上创建 AUTH TOKEN ,以便能够在 OCI 注册表上拉取/推送 Helm 图表。 注:我们已为组 oci-devops-users 提供 IAM 策略,用于管理区间 oci-resource-manager-lab 中的资料档案库。确保获得属于组 oci-devops-user 的用户。 - 
        在 Oracle Cloud 控制台上转到您的用户页面。  
- 
        创建 AUTH 令牌并记下笔记。令牌仅显示一次。我们将此令牌安全地存储在 Vault 中,以供将来在 DevOps 构建管道上使用。  
 
- 
        
- 
    创建 Vault 并存储验证令牌和其他密钥。有关详细信息,请参阅 OCI Vault 。  - 
        创建完成后,在 Vault 上单击并创建主加密密钥。  
- 
        单击密钥并添加以下密钥。 密钥名称 值 OCIRUser 注册名称空间/用户名 OCIRToken auth_token_you_just_created 
 提示:您需要从 OCI 注册表资料档案库获取名称空间。  
- 
        
任务 3:准备 OCI DevOps 项目
- 
    任何 OCI DevOps 项目都需要通知主题,因此必须先创建通知主题。要创建通知主题,请单击此处。  
- 
    创建新 DevOps 项目。要创建 DevOps 项目,请单击此处。  注:切记单击启用日志以运行构建管道。  
- 
    创建和设置微服务的代码资料档案库。本教程使用两种微服务。 资料档案库名称 信息 登录 用于生成 JWT 标记的 Golang 项目 上微服务 使用 SDK 在 OCI 上调用资源的 Golang 代码 - 
        代码已准备就绪,可在下面的后续步骤中下载。 
- 
        转到 DevOps 服务主页,选择开发人员服务,然后选择项目。  
- 
        选择之前创建的 DevOps 项目,然后单击代码资料档案库。  
- 
        单击创建资料档案库并创建用于登录的资料档案库。  
 注:重复步骤 3 并创建移动服务系统信息库。 
- 
        
- 
    在堡垒跳转箱上设置 GIT 凭证。您需要在堡垒虚拟机上设置 SSH 配置文件,以便能够克隆 git 系统信息库。转到堡垒跳箱 shell 并继续执行下面的说明。 - 
        检查密钥是否存在(在 OCI CLI 设置期间创建了密钥)。 ls -lrt ~/.oci 注意:如果您已完成本教程系列上的前几步,如果没有,请按照说明设置 OCI CLI 。 
- 
        创建文件 ~/.ssh/config 并通过设置用户名和密钥位置包括内容。 Host devops.scmservice.*.oci.oraclecloud.com User your_devops_user@your_tenant_name IdentityFile ~/.oci/oci_api_key.pem PubkeyAcceptedKeyTypes=+ssh-rsa
- 
        修复 ~/.ssh/config 的权限。 chmod 600 ~/.ssh/config 
 
- 
        
- 
    使用实验室 go-login 代码填充 OCI 资料档案库。 - 
        通过单击“克隆”选项从您创建的资料档案库获取 URL。  
- 
        获取 go-login-package.zip 文件并将其解压缩到 OCI go-login 克隆的系统信息库位置。 
 必须将字符串YOUR_SSH_CLONE_URL替换为上一步中从克隆选项获取的 URL。cd $HOME git clone <YOUR_SSH_CLONE_URL> cd go-login wget https://docs.us.oracle.com/en/learn/resource-manager-airflow-oke-part3/files/go-login-package.zip unzip go-login-package.zip rm go-login-package.zip git add . git commit -m "initial load" git push  
  这会将 go-login 代码上载到 OCI 中您自己的资料档案库。 
 
- 
        
- 
    使用实验室的移动微服务代码填充 OCI 资料档案库。 - 
        通过单击“克隆”选项从您创建的资料档案库获取 URL。  
- 
        获取 go-microservice-package.zip 文件并将其解压缩到 OCI go-microservice 克隆的系统信息库位置。 
 必须将字符串YOUR_SSH_CLONE_URL替换为上一步中从克隆选项获取的 URL。cd $HOME git clone <YOUR_SSH_CLONE_URL> cd go-microservice wget https://docs.us.oracle.com/en/learn/resource-manager-airflow-oke-part3/files/go-microservice-package.zip unzip go-microservice-package.zip rm go-microservice-package.zip git add . git commit -m "initial load" git push  
   
  这会将 go-microservice 代码上载到您自己的 OCI 资料档案库。  
 
- 
        
后续步骤
要继续执行此学习路径中的下一个教程,请单击此处。
相关链接
确认
- 作者 - Joao Tarla(Oracle LAD A-Team 解决方案工程师)
更多学习资源
探索 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 频道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Create an OCI Devops project, set up permissions and code repository for microservices
F79750-01
April 2023
Copyright © 2023, Oracle and/or its affiliates.