不上传代码到云服务的情况下使用代码检查服务
应用场景
部分用户的代码有严格的保密机制,不允许将代码上传到外部网络,用户希望仅在信任的自有执行机上完成代码扫描服务。华为云CodeArts Check为此提供本实践的扫描方案,在不上传代码到云服务的情况下使用代码检查服务检查代码问题。
约束限制
使用自定义执行机功能为受限功能,如需使用,请联系技术支持。
前提准备
- 已在私有网络创建自定义执行机。执行机规格为CentOS 7及以上,推荐配置为CPU:8U,内存:32G,系统盘:100G,数据盘:250G。
- 需确保本地执行机yum源可用,详情可参考使用自动化工具配置华为云镜像源。
- 接入的自定义执行机中已安装Git-lfs,若未安装,可参考以下示例安装Git-lfs。本示例以使用命令的方式安装为例。
操作流程
流程 |
说明 |
---|---|
可选操作。本地网络无法访问公网时需要配置。 配置本地网络可以访问云上VPC。 |
|
为本实践新建项目。 |
|
为本实践新建所需的自定义执行机资源池。 |
|
创建服务扩展点,可访问用户使用的第三方代码仓。 |
|
创建代码检查任务并配置使用自定义执行机执行检查。通过该实践的方案进行的扫描,不会将代码上传至云服务。 |
配置VPN连接云下数据中心与云上VPC(可选操作)
本地网络无法访问公网时需要配置。

- 参考创建虚拟私有云和子网创建“华北-北京四”的VPC。
- 参考创建VPN网关,购买并创建“华北-北京四”的VPN网关。
购买后可在虚拟专用网络VPN页中查看到已创建的VPN网关,如下图所示。
图2 VPN网关 - 参考创建VPN连接,购买并创建“华北-北京四”的VPN连接。
购买后可在虚拟专用网络VPN页中查看到已创建的VPN连接,如下图所示。
图3 VPN连接其中“本端网关”和“本端子网”填写的是2中的网关和子网,“远端网关”和“远端子网”填写的是本地网络的网关和子网。
- 参考创建VPN连接,购买并创建本地网络的VPN连接。
其中“本端网关”和“本端子网”填写的是本地网络的网关和子网,“远端网关”和“远端子网”填写的是2中华为云的网关和子网。
- 在终端节点控制台页面,按照表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 终端节点 - 如果是华北-北京四:
- 在本地的执行机中执行ping命令,对5中购买的任意一个终端节点IP进行连通性测试。出现以下相似结果,表示本地执行机可以访问终端节点。
图5 连通性测试结果
- 在用户本地执行机上执行以下命令,确认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所示,解析到“华北-北京四”的OBS域名IP为“x.x.x194/31”和“122.x.x.x/31”网段。
- 分别在3VPN连接的“本端子网”和4VPN连接的“远端子网”中添加7的网段。
图8 修改VPN连接图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
- 方式一:(本地已安装DNS服务器)
- 在本地的执行机中执行以下命令,进行连通性测试。
“华北-北京四”的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
- 参考挂载云硬盘。其中挂载目录为“/devcloud”。
新建项目
- 使用华为云账号登录华为云控制台页面。
- 单击页面左上角
,在服务列表中选择 。
- 单击“立即使用”,进入CodeArts服务首页。
- 在首页单击“新建项目”,选用“Scrum”项目模板。
- 项目名称填写“check-bestpractice”,其他保持默认即可。
- 单击“确定”后,进入到“check-bestpractice”项目下。
新建自定义执行机资源池
- 在导航栏中单击用户名
,选择“租户设置”。
- 选择 。
- 单击“新建资源池”,在弹出的窗口中参考表4配置参数后,单击“保存”。
- 单击新建的资源池名称“custom_pool”,进入到资源池配置页面。
- 单击“新建代理”,在弹出的窗口中,参考表5配置代理信息,其他参数项保持默认即可。
- 勾选协议,依次单击“生成命令”和“复制命令”。单击“关闭”。
图10 新建代理
- 根据“步骤三”提示,在执行机上执行6中复制的命令。
- 在代理列表页面,单击“刷新列表”,后台自动同步信息后,代理列表中会增加一条代理执行机信息。代理执行机的代理别名为“agent_test_custom-mwlye1NlLG”。
图11 代理执行机
新建通用Git服务扩展点
服务扩展点(Endpoint)是软件开发生产线的一种扩展插件,为软件开发生产线提供链接第三方代码仓的能力。
代码检查服务默认检查CodeArts Repo服务的代码质量,同时也可使用服务扩展点连接第三方代码仓库检查代码质量。
- 在项目下的CodeArts Check服务页面的导航栏选择 。
- 单击“新建服务扩展点”,在下拉列表中选择“通用Git”。
- 在弹框中配置以下信息,单击“确定”。
表6 新建通用Git服务扩展点 参数
说明
连接名称
自定义,支持中文、英文、数字、“-”、“_”、“.”、空格,不超过256个字符。例如:Endpoint01。
Git仓库Url
输入待连接的Git仓库的https地址。
用户名
输入待连接的Git仓库的用户名,不超过300个字符。
密码或Access Token
输入待连接的Git仓库的密码,不超过300个字符。
创建并执行代码检查任务
- 在页面导航栏中选择 。
- 单击“新建任务”,进入“新建任务”页面。
- “代码源”选择“通用Git”。
- “任务名称”自定义填写“CheckTask01”。
- “Endpoint实例”选择新建通用Git服务扩展点中创建的服务扩展点“Endpoint01”。
其他参数保持默认即可。
- 单击“新建任务”,完成检查任务的创建。
- 在代码检查详情页面,选择 。
- 在“执行主机”区域,选择“自定义执行机”。
- 在下拉框中选择新建自定义执行机资源池中创建的资源池“custom_pool”。
- 配置完成后,单击“保存”,单击“开始检查”,等待检查完成即可。