这是我参与更文挑战的第4天,活动详情查看: 更文挑战
搭建仓库
设置SSH密匙
push项目
代码检查
显示菜单
构建编译
不使用模板,选择“制作镜像并推送SWR仓库”构建,构建完将自动上传至镜像仓库
此构建需要的Dockerfile文件内容如下:
# 基于的基础镜像
FROM python:3.6.8
# 维护者信息
MAINTAINER WangScaler@163.com
# 代码添加到code文件夹
ADD / /wangscaler
# 设置code文件夹是工作目录
WORKDIR /wangscaler
# 安装支持
RUN cd /wangscaler && ls
RUN ls
RUN pip install --user -r /wangscaler/requirements.txt -i https://pypi.doubanio.com/simple/
# python进行编译,自己的脚本,编译开始
# RUN python CreateLicense.py 02:42:ad:12:01:02
RUN python setup.py
RUN python -m compileall -b build/
# 编译结束
RUN pwd && ls
CMD ["python", "build/server.pyc"]
部署
在部署的机器上配置密码登录
获取长期有效docker login指令
操作步骤
获取镜像仓库访问地址、区域项目名称。
登录管理控制台,单击右上角您的用户名处,单击“我的凭证”。
在“API凭证”的项目列表中查找当前区域对应的项目。
如下图所示,“华北-北京一”对应的项目为“cn-north-1”。
镜像仓库地址为 : swr.区域项目名称.myhuaweicloud.com,如中国华北区1对应的镜像仓库地址为:swr.cn-north-1.myhuaweicloud.com。
获取AK/SK访问密钥。
- 说明:访问密钥即AK/SK(Access Key ID/Secret Access Key),表示一组密钥对,用于验证调用API发起请求的访问者身份,与密码的功能相似。如果您已有AK/SK,可以直接使用,无需再次获取。
登录管理控制台,单击右上角您的用户名处,单击“我的凭证”。在左侧导航栏中选择“访问密钥”,单击“新增访问密钥”。输入当前用户的登录密码,并通过邮箱或者手机进行验证。
- 说明:在统一身份认证服务中创建的用户,如果创建时未填写邮箱或者手机号,则只需校验登录密码。
单击“确定”,下载访问密钥,其中包含AK和SK。
- 说明:为防止访问密钥泄露,建议您将其保存到安全的位置。
登录一台linux系统的计算机,执行如下命令获取登录密钥。
printf "*$AK*" | openssl dgst -binary -sha256 -hmac "*$SK*" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'
其中SK为2获取的AK/SK。
使用如下的格式拼接docker login指令。
docker login -u [区域项目名]@[AK] -p [登录密钥] [镜像仓库地址]
其中,区域项目名和镜像仓库地址在1中获取,AK在2中获取,登录密钥为3的执行结果。
总结:
根据ak和sk在centos上生成登录密匙
printf "NO2PHzzzzSPCX" | openssl dgst -binary -sha256 -hmac "IJVZuW2zzzzzSlFNZFt7LjhtA3" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'
登录
docker login -u cn-north-4@NO2PHzzzzSPCX -p 15489d25d17222222222222727c45ebb17262ba0e3xxxxxxxxxxeb69415b914a48eb7 swr.cn-north-4.myhuaweicloud.com
拉取镜像
// 地址都是假的
docker pull swr.cn-north-4.myhuaweicloud.com/xxx/xxx:v1.1
部署镜像
停止部署机器上已存在的容器
删除部署机器上已存在的容器
删除部署机器上已存在的镜像
登录镜像仓库
拉取镜像
运行镜像
构建持续交付流水线
实现自动化检查代码,构建项目镜像,发布到仓库,在部署机器上拉取镜像,运行项目镜像
| 预置流水线任务 | 任务说明 |
|---|---|
| 代码检查 | 基本的流水线任务。 |
| Dockefile | 构建成docker镜像流水线任务。 |
| 部署镜像 | 部署到生产机器流水线任务。 |
说明:
关于vote、result、worker的说明,请参见HE2E DevOps实践流程。
配置流水线串接代码检查,编译构建和自动化部署步骤
- 创建并触发持续交付流水线
-
进入项目,单击页面上方导航
“构建&发布 > 流水线”
,进入流水线服务。
单击 “新建流水线”,根据下表配置流水线。
步骤 填写/选择建议 基本信息 流水线名称:代码检查 选择模板 不使用模板,直接创建 选择代码源 DevCloud 源码仓库:ziot -
单击图标删除阶段“发布仓库”,单击图标)添加“自定义阶段”。
-
单击图标
在右侧滑出框中输入名称“代码检查”,单击“保存”。
-
单击阶段“代码检查”中“请选择子任务”。
-
在右侧滑出框中,类型选择“代码检查”,任务勾选“xxx”,单击“保存”
按照同样方式,添加构建任务“构建镜像”。在阶段“编译构建”
构建成docker镜像,并发布到镜像仓库。
8.构建编译阶段后后添加阶段“部署”,并在该阶段中添加部署任务“部署镜像”,单击“保存”。
系统自动跳转至“流水线详情”页面,单击“全新执行”,启动流水线。
当出现以下页面时,表示任务执行成功。若任务执行失败,请于执行失败处检查失败原因(如:部署阶段执行失败,则进入部署任务查看部署日志,结合6排查失败原因),或参照流水线-帮助文档中的常见问题排查。
- 添加质量门禁
1、进入流水线任务“phoenix-sample-pipeline”的“流水线配置”页面。
2、在阶段“代码检查”下的“质量门禁处”,单击。
在页面右侧滑框中,单击“点击创建”。在弹框中输入名称“代码检查门禁”, 打开“CodeCheck问题数”开关并输入门禁阈值“5”,单击“保存”。
3、在“门禁”下拉列表中选择刚刚创建的“代码检查门禁”,单击“保存”。
4、保存流水线,返回“流水线详情”页面。启动流水线任务,待任务执行结束可看到:由于代码检查问题数大于5,因此流水线任务执行失败。
5、单击“配置”,修改“代码检查门禁”的阈值为15,保存流水线并执行。待任务执行结束可看到:由于代码检查问题数小于15,因此流水线任务执行成功。
更新流水线配置,实现代码变更触发的持续交付流水线
进入项目,单击页面上方导航“构建&发布 > 流水线”,进入流水线服务。
找到流水线任务“phoenix-sample-pipeline”,单击此任务对应操作列中的图标,进入“流水线配置”页面。
选择“触发器”页签,在“触发分支”下拉列表中勾选所需分支,单击“保存”。
设置完成后,当所选分支有代码变更提交时,将自动触发该任务。
流水线配置高级功能
添加人工审核
DevCloud支持在流水线任务中加入人工审核设置,在某个阶段任务执行完成时,需要人工审核通过才能继续执行。
1、进入流水线任务“phoenix-sample-pipeline”的“流水线配置”页面。
2、在阶段“部署”下,单击“添加任务”。
在右侧滑框中,选择类型“流水线控制”,勾选“人工审核”,并在“审核人”下拉列表中勾选所需的审核人。
页面中的说明如下:
| 参数 | 说明 |
|---|---|
| 审核人 | 可以设置一个或多个审核人。 |
| 审核模式 | 全部人审核表示所有人都必须通过任何才能继续,任一人审核表示审核人列表中的任何一个人审核任务就可以继续。 |
| 审核时长 | 设置审核的有效期,超期后审核无效,不能在进行审核。 |
| 备注 | 审核说明。 |
3、返回“流水线配置”页面,将任务“流水线控制”拖动到任务“部署”上方,单击“保存”。
4、启动流水线,当执行到“人工审核”时,页面中将弹框提示任务需审核。
5、审核人进入流水线任务
“phoenix-sample-pipeline”
的详情页
单击“批准”,流水线将自动继续执行。 单击“驳回”,流水线将中止执行。