×

jenkins构建项目

jenkins构建项目(jenkins的触发远程构建时403或需要登录问题)

admin admin 发表于2024-05-26 16:53:44 浏览26 评论0

抢沙发发表评论

其实jenkins构建项目的问题并不复杂,但是又很多的朋友都不太了解jenkins的触发远程构建时403或需要登录问题,因此呢,今天小编就来为大家分享jenkins构建项目的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

jenkins的触发远程构建时403或需要登录问题

这2天自己折腾了下jenkins的自动化部署,遇到一个403问题。百度谷歌了一圈,只有一篇文章介绍了如何解决,于是我记录一下,作为补充。 安装了jenkins之后,也配置了项目。在触发构建的选项中,有多个触发机制。我们选择了 然后去码云配置webhook 此时理论上,我们点击测试,会自动触发项目的构建。 但是事情发展不顺利, 我点击测试按钮,得到的结果是 403。不正常。 我复制链接通过浏览器进行访问,又触发了构建。正常。 将链接发给朋友,则出现登录界面。 不正常 陷入了一头雾水。 根据提示,403和出现登录界面,说明授权出现问题。 我可以访问触发,是因为我此时处于jenkins登录状态。 ***隐藏网址*** 得到了解决。需要配置匿名用户权限。 但是该文章写的不明确,我找不到配置的位置。费了很多时间,最终找到。 此时去码云那边点击测试按钮。会触发项目的自动构建。 一切很完美。

jenkins构建项目失败,小球的颜色是

构建项目失败,小球的颜色是红色。Jenkins 使用各种颜色表示任务当前的状态:1.蓝色:任务最近一次构建是成功的;2.红色:任务最后一次构建是失败的;3.黄色:任务最后一次构建表示成功了,但不稳定(主要是因为有失败的测试);4.灰色:任务从未被执行过或被禁用了。

Windows使用Jenkins构建前后端分离项目+项目回滚和备份

公司服务器把Jenkins安装在了Windows上,很多构建都需要使用dos命令,十分难受,写这篇文章记录一下遇到的坑。

原本是想部署之后运行即可,结果还要备份。上网查了一下,有用 ThinBackup 插件进行备份的,还有自己创个目录备份的……五花八门。于是我先选择了自己创个目录备份的方案,设想是这样的:

结果说怎么可以是手动回退呢,让我改。再加上第4点用bat实在太难写了,于是就改成用Jenkins自带的备份(或者说是将生成的文件进行保存)。自带的备份方式如下:

这里使用到了 Jenkins的环境变量 。备份文件的路径和配置详见第5步。

还有更方便的 ,直接更改ProcessTreeKiller正在寻找的环境变量 BUILD_ID 即可暂时禁用ProcessTreeKiller。官网只给出了Shell命令的写法,在运行jar之前写上

BUT,我们是Windows, 故应该改成

之后再用Linux的 nohup 或者Windows的 javaw 命令即可后台运行jar包了。

还有一个打印日志的问题:在Linux中使用 nohup 命令还好办;而在Windows中,单独使用 javaw 命令并配合管道工具( 》 和 》》 )可以打印日志,但即使改变了BUILD_ID,Jenkins也不会关闭,会一直提示“构建中”。我们使用了start命令,但是start命令只能运行一个命令,会忽略掉后面的管道工具,从而不能打印日志。解决方案是,写一个bat命令保存在本地,并使用外部参数来作为jar包的路径和日志的路径。bat命令内容如下:

上面的命令行则变成:

日志就会保存在每次构建的目录中。其中的 BUILD_NUMBER 即构建的序号。

后端写好了前端就好办了,直接照前端办即可。我的步骤是:

在前端部署之前,需要通过nginx反向代理将后端端口挂载到80端口的路径上,这里就不详说了。特别坑的地方是,反向代理有时候不能生效,是因为反复打开关闭nginx过程中产生了好几个nginx进程,把它们全部关闭再重新打开,反向代理就能够生效了。

jenkins指定pom打包

先说一下jenkins的基础知识:1.进入: 找到上面的 /var/lib/jenkins 在进入 workspace即可看到 2.配置的构建项目:会有工作空间 用来存放从git上拉取的源码,利用maven 打包时,产生的jar也是存在这里源码下的target目录 和 本地打包一样。 jenkins打包时默认从对应项目的工作空间的根目录 执行mvn clean install命令(自己配置的),此时找不到pom会报错! 解决:直接在 POM 栏里把pom的路径写死 即可打包成功 等同于 mvn -f ****pom.xml1.Source files:源文件配置方法:(即复制的源文件)     即打包生成的文件: 基于工作空间的根目录!!! 所以一般的项目生成的jar都是在工作空间的target/**.jar  直接写 target/**.jar 即可 2.Remove prefix 直接把上面的文件夹填上即可:  target/ 3.Remote directory:  目标目录 真正目录的组成: 全局配置的服务器里 有个配置的路径 + 你填的这个目标目录 就是目标文件 复制后存放的位置mvn -pl business  多个用逗号分割 jenkens 里填写: clean install -pl qshop-business即可    

Jenkins Gitlab 前端构建发布

流程:通常是从gitlab/github拉取项目,构建,把产出文件发到服务器。

一、环境

创建任务之前,要先配置两项:

问题1:jenkins credentials配置SSH

系统管理 -》 Manage Credentials -》 全局凭据 (unrestricted) -》添加或者

注意:这里的key是个大坑,最开始我纠结是填私钥还是公钥,发现粘贴进去都不对。(粘贴私钥时我粘贴的是正文,没有复制首尾两行,导致一直报错。)最后把私钥整个粘贴进去就对了。

原因:

由于Jenkins的安全策略配置了CSRF跨站点保护。

解决方案:

进入Jenkins,系统管理--》全局安全配置,勾选匿名用户具有可读权限和去掉CSRF防止跨站点请求伪造:

在 /configure 下

这个插件是jenkins连接linux系统的时候使用。 以下针对插件的每个属性进行说明。

Name SSH Server的Name属性就是你希望连接的服务器。

Source files 这里输入的是你希望传到服务器的文件夹和文件。路劲是相对jenkins的workspace的项目名称的。例如编译打包后的路径为dist文件夹下的jenkinszip.tar.gz,则Surce files填入dist/jenkinszip.tar.gz。

Remove prefix 如果Source files为dist/jenkinszip.tar.gz,但是不想把dist目录创建到服务器端,这个时候就可以在Remove prefix里填入dist

Remote directory 这里指定文件将被拷贝到服务器的路径。 PS:被拷贝文件在服务器上的完整路径=登录服务器账号的默认路径(就是全局设置的Remote Directory)+当前任务配置的Remote directory。 例如我的服务器路径是 /home/wwwroot/aaa 我全局配置Remote Directory 是 /home/wwwroot 当前任务配置的Remote Directory 是 /aaa/

Exec command 这里就是连接服务器之后需要执行的命令。

注意:这里配置的Secret token和 webhook要填写到gitlab里面,路径如下:

***隐藏网址***

Jenkins之远程触发构建

通过 brew 安装 jenkins 通过 brew list jenkins 查看安装路径 jenkins 相关命令: 在浏览器输入 localhost:8080 就可以打开Jenkins的web界面了。 如果忘记了更改的端口号,可以查看下 homebrew.mxcl.jenkins.plist 文件,里面有端口号。更改 homebrew.mxcl.jenkins.plist 文件之后,记得 restart 一下。 如上图,在项目的 构建触发器 区域里面,有个 触发远程构建 选项。勾选之后,就会有一个 身份验证令牌 ,就是以后用的 token 了。 可能有些Jinkens下没有触发远程构建的选项,是因为需要先在 系统管理 -》 Configure Gloal Security -》 打开【启用安全】选项 : 打开 启用安全 之后,配置一些选项,项目中就有 触发远程构建 了。 勾选 触发远程构建 ,下面会有几行解释说明: 我构建了两个项目如下: 没有参数: JENKINS_URL/job/TestAPI/build?token=TOKEN_NAME 通过命令行调用: 也可以直接在浏览器里面输入上面命令里面的 url 。 TestAPINoParams 为一个没有任何参数项目,如果有参数的话,就不能用上面的命令了。 通过命令行调用: 也可用 Postman 测试: 通过命令行: 通过 Postman : 比如说,我这里传的是 logo-1024.png 图片, API 调用成功后, jenkins 服务器上 /Users/xulong/Desktop/receiveFile/ 在这个路径下,就会有一个 receive.png 文件。 可以先用 Postman 调试成功,然后可以导出 curl 命令和其它命令。

jenkins构建:参数化构建

有时候我们构建需要传参,那么构建需要选择参数化构建选项。 常用参数化类型: 字符参数,选项参数,git参数化, choice Parameter 四种。 设置方式: 任务配置中,---参数化构建---添加参数----选项参数 构建: 点击构建: 输出结果: 安装插件git-parameter 自动获取当前git地址所有分支,并提供下拉框可选 添加参数化构建的时候,名称建议用英文,可在下面shell引用变量。 保存 ,点击构建,可发现获取到了此项目配置的git地址的全部分支 (图中没有origin/ 是因为在高级里填写了《分支过滤》---origin/(.*) 可过滤origin关键字) 安装Extended Choice Parameter插件 :支持单选,多选,读取文件作为值,支持Groovy脚本 number of visible items 指定多选框一次展示多少个选项 parmeter type可选择多种选择类型 value默认用,号分隔 点击构建效果: 这里我在/var/jenkins_home下创建一个文件,server.list,内容是遍历20台机器 写了个shell,将20台机器输出到一个指定文件夹,读取这个文件夹。 cat server_ip.sh cat server.list

jenkins丢弃旧的构建及常用操作

1、为什么要丢弃旧的构建 平常在用jenkins进行每天定时自动构建运行api接口测试项目时,发现过一段时间磁盘空间就被占用很多,需要定期去清理,不然会导致构建失败; 2、丢弃旧的构建 1)在jenkins的主页面,点击构建的项目 2)点击进入项目后,点击左侧的配置按钮 3)在配置页面--》General,勾选,填写保存的构建天数和构建的最大个数PS:以下是使用jenkins基础操作 1)启动java -jar /Applications/Jenkins/jenkins.war ***隐藏网址*** 查找路径:find / -name jenkins 2)如果遇到忘记jenkins密码,修改jenkins用户密码 /Users/Shared/Jenkins/Home/config.xml ***隐藏网址*** ***隐藏网址*** ***隐藏网址*** 4)升级jenkins 查看jenkins版本号java -jar /Applications/Jenkins/jenkins.war --version 1. 停止Jenkins服务(记得备份原来的jenkins.war,比如 cp jenkins.war jenkins_bak.war) ***隐藏网址*** 2. 替换最新的war包,并启动jenkins(一般也就java -jar jenkins.war即可)

如果你还想了解更多这方面的信息,记得收藏关注本站。