gocd部署应用

news/2025/4/1 20:01:16/

产品需要在多个环境部署测试,为了提高部署测试效率,故计划使用CD工具,jenkins确实足够强大,但是使用部署功能是需要安装插件的,再说自己本身只用部署功能,故决定找一个小巧的CD工具,经过一番查找,gocd就是我需要的CD工具;

该工具支持 linux 、windows、mac,也有docker镜像; 官方有详细生动的文档;

工具官网 下载页面 文档页面

以debian环境为例进行部署:

1.gocd server部署

wget https://download.gocd.org/binaries/22.3.0-15301/deb/go-server_22.3.0-15301_all.deb

dpkg -i go-server_22.3.0-15301_all.deb

systemctl start go-server

安装完成后通过: http://127.0.0.1:8153/ 访问(默认绑定在0.0.0.0上)

界面如下:

直接跳到了创建pipeline的界面

2.go-agent部署

wget https://download.gocd.org/binaries/22.3.0-15301/deb/go-agent_22.3.0-15301_all.deb

dpkg -i go-agent_22.3.0-15301_all.deb

修改配置文件配置go-server的IP:

/usr/share/go-agent/wrapper-config/wrapper-properties.conf

systemctl start go-agent

成功后即可在服务器端看到agent信息:

注意: 需要手动enable来启用agent;

3.创建流水线(pipeline)

3.1 物料(material)

物料主要起触发流水线的作用; 包括git、svn等方式(服务器上需要安装git、svn命令),如果确实无法搭建仓库,可以看插件页是否有你需要的方式,我使用的是ftp方式,下载插件后放到 /var/lib/go-server/plugins/external 目录后重启go-server服务即可;

如果你选用的仓库报错: The ref refs/heads/master could not be found.

那么很可能是因为目前一些仓库将mast改名为main的原因,在高级设置里指定branch为main即可;

3.2 管道设置

主要配置流水线名称及环境变量即可;

3.3 阶段设置

主要配置阶段名称及环境变量即可;

3.4 任务设置

此阶段主要配置命令;

4. 修改流水线

5.执行流水线

根据目前资料来看是1分钟轮询一次;

可以手动触发流水线;

6.用户管理

htpasswd创建密码文件:

apt-get install apache2-utils

创建密码文件: htpasswd -c -B passwd user1 创建passwd文件,添加用户user1

htpasswd -B passwd user2 在passwd文件中添加用户user2

添加完毕后如下:

FAQ:

  1. 如何将go-agent切换到一个新的go-server?

除了将配置文件 /usr/share/go-agent/wrapper-config/wrapper-properties.conf中的IP进行修改外,还需要删除/var/lib/go-agent/config 目录下的guid.txt和token;参考

2. 流水线执行时命令报错了,但是看不到日志怎么办?

安装script-executor插件;添加命令时选择plugin task -> script-executor

注意:默认使用的用户为go,不是root,注意权限问题;

可以在/etc/sudoers文件中加上 go ALL=(ALL) NOPASSWD: ALL ,以此来达到执行sudo面输入密码的效果;

3.有多个agent执行不同的任务,应该怎么办?

1. 先添加资源,然后将agent和资源类型相关联;
2.在Admin > Pipelines 中配置JOB SETTINGS;
4. 默认工作目录在哪里

pipelines\$pipename\

5. windows下执行注意事项

编写bat脚本

6. 每次执行时是在一个go-agent上执行,还是在多个go-gent上执行呢?

取决于 JOB SETTINGS

7.是否可以在arm环境上运行

可以,deb包和rpm包在aarch64和x86上是一致


http://www.ppmy.cn/news/27016.html

相关文章

嵌入式开发:C++在深度嵌入式系统中的应用

深度嵌入式系统通常在C语言中实现。为什么会这样?这样的系统是否也能从C中获益?嵌入式开发人员在将广泛、高效的深度嵌入式代码库从C转换为C方面的实践经验的贡献。嵌入式和深度嵌入式系统通常用C而不是C实现。软件开发人员必须放弃C作为强类型系统、模板元编程(TMP)和面向对…

九龙证券|银行资本管理办法迎“大修” 信用风险权重法调整优化

1年期AAA中债商业银行同业存单到期收益率 日前迎来“大修”的商业银行本钱办理方法,在债券商场激起“涟漪”——债券商场一改此前平静态势,连续两日跌落。 2月21日,10年期国债收益率较上星期五上行2.9个基点,至2.919%&#xff1b…

【超分顶会详解+部署】ESRT:Transformer for Single Image Super-Resolution

文章目录ESRT1. 超分基本知识1.1 SRF1.2 xxx_img1.3 裁剪1.4 超分模型评估标准2. LCB、LTB 模块2.1 序列模型3. 损失函数4. 部署运行4.1 数据集4.1.1 训练集4.1.2 验证集4.1.3 测试集4.2 数据集转换4.3 训练4.4 测试4.5 效果ESRT ESRT(Efficient Super-Resolution …

华为OD机试真题Python实现【最长连续子串】真题+解题思路+代码(20222023)

最长连续子串 题目 给定一个字符串 只包含字母和数字 按要求找出字符串中的最长连续子串的长度 字符串本身是其最长的子串 子串要求 只包含一个字母(a~z A~Z)其余必须是数字字母可以在子串中的任意位置 如果找不到满足要求的子串 比如说,全是字母或数字则返回-1 🔥🔥🔥…

ChatGPT来了,英语不能丢,但我不想上班

文 / 谷雨(微信公众号:王不留) 好久没写文,可能大伙已把我忘了。春节之后,状态一直不太好。我在2月1号时从老家直接来到了深圳出差,而后以996的工作状态疲于应付工作中的各种问题。 终于这周末休息了两天&a…

华为OD机试真题Python实现【敏感字段加密】真题+解题思路+代码(20222023)

敏感字段加密 题目 给定一个由多个命令字组成的命令字符串; 字符串长度小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号命令字之间以一个或多个下划线_进行分割可以通过两个双引号""来标识包含下划线_的命令字或空命令字(仅包含两个双引号的命令字…

Kotlin-面向对象

本片博客主要写创建对象,创建接口,创建抽象类,data关键字的作用 创建对象 如何声明一个对象,使用class关键字 格式为: class 对象名字(对象属性名:属性类型…){} 如果对象没有函数…

【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…