如果服务商使用持续集成环境构建或更新软件时,可以将计算巢文件部署物的更新操作也加入到持续集成中去。服务商将经过验证的软件版本发布到计算巢平台上时,文件部署物的版本和内容也会同步更新发布。本文介绍如何将计算巢文件部署物更新操作加入到服务商的软件持续集成中。
准备环境和工具
操作前,请完成以下准备工作。
搭建持续集成环境。本文以搭建Jenkins持续集成环境为示例。关于如何搭建Jenkins集成环境的操作,请参见搭建持续集成环境示例。
安装阿里云CLI命令行工具且版本不低于3.0.141。
完成持续环境搭建后,需要安装jq命令行JSON处理器。
在计算巢控制台创建需要持续集成的部署物,更多信息,请参见创建部署物。
步骤一:构建文件部署物
在您本地使用命令将服务商的软件打包成文件。此处以打包Spring Boot中的gs-spring-boot为例,构建持续集成需要的文件部署物。
此命令为示例命令,正式构建时,请将示例命令换成服务商软件的打包命令。
cd $WORKSPACE/initial
mvn install
步骤二:将构建好的文件部署物上传到持续集成环境
上传文件部署物之前,设置好阿里云CLI命令行工具的使用环境变量,并且请确认您的账号已具备管理计算巢服务的商家侧权限(AliyunComputeNestSupplierFullAccess)。
配置环境变量模式。
export ALIBABACLOUD_ACCESS_KEY_ID=LTAI5t6SyR1RpZtcUC****** export ALIBABACLOUD_ACCESS_KEY_SECRET=MTM0y6IqXXCCFnA7bGOuCl******** export ALIBABACLOUD_REGION_ID=cn-hangzhou # 中国或中国内地站点cn-hangzhou,国际站ap-southeast-1
获取上传文件信息并上传部署物。
输入集成命令时,请替换命令行中
<source_file>
和<target_file>
变量。# 指定要上传部署物文件到cn-hangzhou地域 credentials_response=`aliyun computenestsupplier GetArtifactRepositoryCredentials --ArtifactType File --DeployRegionId cn-hangzhou` # 获取上传部署物文件的密钥信息 file_access_key_id=`echo $credentials_response |jq -r '.Credentials.AccessKeyId'` file_access_key_secret=`echo $credentials_response |jq -r '.Credentials.AccessKeySecret'` file_security_token=`echo $credentials_response |jq -r '.Credentials.SecurityToken'` # 获取上传部署物文件的OSS Bucket信息 oss_bucket_name=`echo $credentials_response |jq -r '.AvailableResources[0].RepositoryName'` oss_path=`echo $credentials_response |jq -r '.AvailableResources[0].Path'` oss_region_id=`echo $credentials_response |jq -r '.AvailableResources[0].RegionId'` # 上传部署物文件 aliyun oss cp <source_file> oss://${oss_bucket_name}/${oss_path}/<target_file> -e oss-${oss_region_id}.aliyuncs.com --region ${oss_region_id} --mode StsToken --access-key-id ${file_access_key_id} --access-key-secret ${file_access_key_secret} --sts-token ${file_security_token} # 如果持续集成环境在阿里云内网,可以使用内网上传获得更快的上传速度。 # aliyun oss cp <source_file> oss://${oss_bucket_name}/${oss_path}/<target_file> -e oss-${oss_region_id}-internal.aliyuncs.com --region ${oss_region_id} --mode StsToken --access-key-id ${file_access_key_id} --access-key-secret ${file_access_key_secret} --sts-token ${file_security_token} # 生成上传文件https地址 file_url=https://${oss_bucket_name}.oss-${oss_region_id}.aliyuncs.com/${oss_path}/<target_file>
持续集成文件部署物。
输入集成命令时,请将命令行中
<your_artifact_id>
替换成您创建的部署物ID。# 获取部署物ID artifact_id=<your_artifact_id> # 创建部署物 version=`date +%s` aliyun computenestsupplier CreateArtifact --ArtifactId ${artifact_id} --ArtifactType File --Name '持续集成文件部署物' --VersionName ${version} --ArtifactProperty "{\"Url\":\"${file_url}\",\"FileScriptMetadata\":\"{\\\"WorkDir\\\":\\\"/root\\\",\\\"CommandType\\\":\\\"RunShellScript\\\",\\\"Platform\\\":\\\"Linux\\\",\\\"Script\\\":\\\"echo hello\\\"}\"}" --SupportRegionIds.1 null # 发布部署物 aliyun computenestsupplier ReleaseArtifact --ArtifactId ${artifact_id}
搭建持续集成环境示例
此处以通过ROS快速创建一台安装有Jenkins的ECS实例并完成Jenkins初始配置为例,搭建持续集成环境。本示例所用操作系统为Alibaba Cloud Linux。
登录资源编排控制台。
在左侧导航栏中,选择 。
找到Jenkins单机版(已有VPC)并单击创建资源栈。
根据界面提示,输入参数然后单击创建。更多信息,请参见创建资源栈。
资源栈创建完成后,可以查看输出信息。
创建完成后,获取资源输出的JenkinsUrl并在本地浏览器打开。如:http://39.**.**.168:8080。
在解锁Jenkins界面的管理员密码框中,输入资源输出页中InitialAdminPassword的值。
在自定义Jenkins界面,选择安装推荐的插件。
安装完成后,设置管理员用户名和密码并登录Jenkins环境。