文档首页/ 代码检查 CodeArts Check/ 最佳实践/ 不上传代码到云服务的情况下使用代码检查服务
更新时间:2025-05-06 GMT+08:00
分享

不上传代码到云服务的情况下使用代码检查服务

应用场景

部分用户的代码有严格的保密机制,不允许将代码上传到外部网络,用户希望仅在信任的自有执行机上完成代码扫描服务。华为云CodeArts Check为此提供本实践的扫描方案,在不上传代码到云服务的情况下使用代码检查服务检查代码问题。

约束限制

使用自定义执行机功能为受限功能,如需使用,请联系技术支持。

前提准备

  • 已在私有网络创建自定义执行机。执行机规格为CentOS 7及以上,推荐配置为CPU:8U,内存:32G,系统盘:100G,数据盘:250G。
  • 需确保本地执行机yum源可用,详情可参考使用自动化工具配置华为云镜像源
  • 接入的自定义执行机中已安装Git-lfs,若未安装,可参考以下示例安装Git-lfs。本示例以使用命令的方式安装为例。
    在执行机上执行以下命令。
    # 下载
    wget -O  git-lfs.tar.gz https://github.com/git-lfs/git-lfs/releases/download/v3.4.1/git-lfs-linux-amd64-v3.4.1.tar.gz
    # 解压
    tar -zxvf git-lfs.tar.gz
    # 进入解压后的目录
    cd  git-lfs-3.4.1
    # 执行安装脚本
    sh install.sh
    # 验证
    git lfs version

操作流程

表1 操作流程

流程

说明

配置VPN连接云下数据中心与云上VPC(可选)

可选操作。本地网络无法访问公网时需要配置。

配置本地网络可以访问云上VPC。

新建项目

为本实践新建项目。

新建自定义执行机资源池

为本实践新建所需的自定义执行机资源池。

新建通用Git服务扩展点

创建服务扩展点,可访问用户使用的第三方代码仓。

创建并执行代码检查任务

创建代码检查任务并配置使用自定义执行机执行检查。通过该实践的方案进行的扫描,不会将代码上传至云服务。

配置VPN连接云下数据中心与云上VPC(可选操作)

本地网络无法访问公网时需要配置。

图1 方案架构
  1. 参考创建虚拟私有云和子网创建“华北-北京四”的VPC。
  2. 参考创建VPN网关,购买并创建“华北-北京四”的VPN网关。

    购买后可在虚拟专用网络VPN页中查看到已创建的VPN网关,如下图所示。

    图2 VPN网关

  3. 参考创建VPN连接,购买并创建“华北-北京四”的VPN连接。

    购买后可在虚拟专用网络VPN页中查看到已创建的VPN连接,如下图所示。

    图3 VPN连接

    其中“本端网关”“本端子网”填写的是2中的网关和子网,“远端网关”“远端子网”填写的是本地网络的网关和子网。

  4. 参考创建VPN连接,购买并创建本地网络的VPN连接。

    其中“本端网关”“本端子网”填写的是本地网络的网关和子网,“远端网关”“远端子网”填写的是2中华为云的网关和子网。

  5. 终端节点控制台页面,按照表2购买“华北-北京四”的VPC终端节点VPCEP。其他参数保持默认即可。

    表2 终端节点购买信息

    区域

    华北-北京四

    服务类别

    按名称查找服务

    服务名称

    依次购买以下节点。

    • 如果是华北-北京四:
      • APIG:com.myhuaweicloud.cn-north-4.api
      • Octopus:cn-north-4.octopus-customer.240cf05d-34cb-48a7-a8a3-443cd496de27
      • SWR:com.myhuaweicloud.cn-north-4.swr
      • OBS:cn-north-4.com.myhuaweicloud.v4.obsv2.OBSCluster9
      • Mirror:repo2.myhuaweicloud.com
    • 如果是广州:
      • APIG:com.myhuaweicloud.cn-south-1.api
      • Octopus:cn-south-1.octopus-customer.3da50262-7b47-45c0-b26c-9e19dc155f5d
      • SWR:swr.cn-south-1.myhuaweicloud.com
      • OBS:cn-south-1.com.myhuaweicloud.v4.obsv2
      • Mirror:repo.myhuaweicloud.com

    虚拟私有云

    选择1中购买的VPC。

    购买后可在终端节点列表页查看已购买的终端节点,如下图所示。

    图4 终端节点

  6. 在本地的执行机中执行ping命令,对5中购买的任意一个终端节点IP进行连通性测试。出现以下相似结果,表示本地执行机可以访问终端节点。

    图5 连通性测试结果

  7. 在用户本地执行机上执行以下命令,确认OBS的域名解析IP。

    确认“华北-北京四”的OBS:

    dig secdev-codecheck-cn-north-4-01.obs.cn-north-4.myhuaweicloud.com
    dig op-svc-swr-b051-10-38-19-62-3az.obs.cn-north-4.myhuaweicloud.com

    确认“广州”的OBS:

    dig cn-south-1-obs-codecheck-v2.obs.cn-south-1.myhuaweicloud.com
    dig op-svc-swr-b051-10-230-33-197-3az.obs.cn-south-1.myhuaweicloud.com

    如果执行机未安装dig工具,可执行yum install bind-utils命令进行安装。

    图6 “华北-北京四”域名解析结果一
    图7 “华北-北京四”域名解析结果二

    图6图7所示,解析到“华北-北京四”的OBS域名IP为“x.x.x194/31”“122.x.x.x/31”网段。

  8. 分别在3VPN连接的“本端子网”4VPN连接的“远端子网”中添加7的网段。

    图8 修改VPN连接
    图9 添加远端子网

  9. 在本地网络配置DNS域名解析。

    • 方式一:(本地已安装DNS服务器)

      参考创建内网域名(需要创建内网域名和添加记录集),创建表3的域名。

      表3 DNS域名

      服务

      华北-北京四域名

      广州域名

      IP

      SWR

      swr.cn-north-4.myhuaweicloud.com

      swr.cn-south-1.myhuaweicloud.com

      5中SWR对应的服务地址

      Octopus

      agent.codearts.cn-north-4.myhuaweicloud.com

      agent.codearts.cn-south-1.myhuaweicloud.com

      5中Octopus对应的服务地址

      APIG

      cloudoctopus.cn-north-4.myhuaweicloud.com

      cloudoctopus.cn-south-1.myhuaweicloud.com

      5中APIG对应的服务地址

      Mirror

      mirrors.huaweicloud.com

      mirrors.huaweicloud.com

      5中Mirror对应的服务地址

    • 方式二:(本地未安装DNS服务器)

      在本地执行机的“/etc/hosts/”文件中增加以下配置。

      ${SWR对应的VPCEP IP} swr.cn-north-4.myhuaweicloud.com
      ${Octopus对应的VPCEP IP} agent.codearts.cn-north-4.myhuaweicloud.com
      ${APIG对应的VPCEP IP} cloudoctopus.cn-north-4.myhuaweicloud.com
      ${Mirror对应的VPCEP IP} mirrors.huaweicloud.com

  10. 在本地的执行机中执行以下命令,进行连通性测试。

    “华北-北京四”的OBS:

    ping swr.cn-north-4.myhuaweicloud.com
    ping agent.codearts.cn-north-4.myhuaweicloud.com
    ping cloudoctopus.cn-north-4.myhuaweicloud.com
    ping mirrors.huaweicloud.com
    ping secdev-codecheck-cn-north-4-01.obs.cn-north-4.myhuaweicloud.com
    ping cloud-octopus-agent.obs.cn-north-4.myhuaweicloud.com
    ping op-svc-swr-b051-10-38-19-62-3az.obs.cn-north-4.myhuaweicloud.com

    “广州”的OBS:

    ping swr.cn-south-1.myhuaweicloud.com
    ping agent.codearts.cn-south-1.myhuaweicloud.com
    ping cloudoctopus.cn-south-1.myhuaweicloud.com
    ping mirrors.huaweicloud.com
    ping cn-south-1-obs-codecheck-v2.obs.cn-south-1.myhuaweicloud.com
    ping cloud-octopus-agent.obs.cn-south-1.myhuaweicloud.com
    ping op-svc-swr-b051-10-230-33-197-3az.obs.cn-south-1.myhuaweicloud.com

  11. 参考挂载云硬盘。其中挂载目录为“/devcloud”

新建项目

  1. 使用华为云账号登录华为云控制台页面
  2. 单击页面左上角,在服务列表中选择开发与运维 > 软件开发生产线 CodeArts
  3. 单击“立即使用”,进入CodeArts服务首页。
  4. 在首页单击“新建项目”,选用“Scrum”项目模板。
  5. 项目名称填写“check-bestpractice”,其他保持默认即可。
  6. 单击“确定”后,进入到“check-bestpractice”项目下。

新建自定义执行机资源池

  1. 在导航栏中单击用户名,选择“租户设置”
  2. 选择资源池管理 > 资源池
  3. 单击“新建资源池”,在弹出的窗口中参考表4配置参数后,单击“保存”

    表4 资源池配置参数说明

    参数名称

    参数说明

    资源池名称

    资源池的名称,根据需要自定义。例如:custom_pool。

    资源池类型

    选择LINUX_DOCKER。执行任务时将拉起一个Linux docker容器,任务在容器中运行。

    资源池描述

    根据需要输入资源池描述。可不填写。

    资源池可以被租户下所有子用户使用

    勾选后,此资源池可以被当前租户下所有子用户使用。可不勾选。

  4. 单击新建的资源池名称“custom_pool”,进入到资源池配置页面。
  5. 单击“新建代理”,在弹出的窗口中,参考表5配置代理信息,其他参数项保持默认即可。

    表5 新建代理参数说明

    参数

    说明

    自动安装Git

    关闭开关,参考“如何手动安装Git?”安装Git。

    是否安装Docker

    勾选此项,安装Docker。

    自动安装Docker

    关闭开关,单击“如何手动安装Docker?”安装Docker。

    AK

    参考获取AK/SK获取。

    SK

    参考获取AK/SK获取。

    代理名称

    自定义代理名称。例如:agent_test_custom。

    代理工作空间

    填写代理工作空间,需符合标准的linux目录格式。例如:/opt/agent_test_custom。

  6. 勾选协议,依次单击“生成命令”“复制命令”。单击“关闭”

    图10 新建代理

  7. 根据“步骤三”提示,在执行机上执行6中复制的命令。
  8. 在代理列表页面,单击“刷新列表”,后台自动同步信息后,代理列表中会增加一条代理执行机信息。代理执行机的代理别名为“agent_test_custom-mwlye1NlLG”

    图11 代理执行机

新建通用Git服务扩展点

服务扩展点(Endpoint)是软件开发生产线的一种扩展插件,为软件开发生产线提供链接第三方代码仓的能力。

代码检查服务默认检查CodeArts Repo服务的代码质量,同时也可使用服务扩展点连接第三方代码仓库检查代码质量。

  1. 在项目下的CodeArts Check服务页面的导航栏选择设置 > 通用设置 > 服务扩展点管理
  2. 单击“新建服务扩展点”,在下拉列表中选择“通用Git”
  3. 在弹框中配置以下信息,单击“确定”

    表6 新建通用Git服务扩展点

    参数

    说明

    连接名称

    自定义,支持中文、英文、数字、“-”、“_”、“.”、空格,不超过256个字符。例如:Endpoint01。

    Git仓库Url

    输入待连接的Git仓库的https地址。

    用户名

    输入待连接的Git仓库的用户名,不超过300个字符。

    密码或Access Token

    输入待连接的Git仓库的密码,不超过300个字符。

创建并执行代码检查任务

  1. 在页面导航栏中选择代码 > 代码检查
  2. 单击“新建任务”,进入“新建任务”页面。

    • “代码源”选择“通用Git”
    • “任务名称”自定义填写“CheckTask01”
    • “Endpoint实例”选择新建通用Git服务扩展点中创建的服务扩展点“Endpoint01”

    其他参数保持默认即可。

  3. 单击“新建任务”,完成检查任务的创建。
  4. 在代码检查详情页面,选择设置 > 自定义环境
  5. “执行主机”区域,选择“自定义执行机”
  6. 在下拉框中选择新建自定义执行机资源池中创建的资源池“custom_pool”
  7. 配置完成后,单击“保存”,单击“开始检查”,等待检查完成即可。

相关操作

相关文档

    OSZAR »