环境配置
-
布置
jenkins
执行以下命令
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key yum install jenkins systemctl start jenkins systemctl status jenkins
状态如下
-
布置
gitea
官网:
gitea
官网运行
gitea
即可gitea web
备注:在
gitea
中不需要设置管理员,默认第一个注册的账号就是管理员 -
在
gitea
中创建一个测试仓库gitea-nginx
如下
-
在
jenkins
中配置凭证填写用户名,密码,以及描述即可,如下
-
在
jenkins
中配置构建任务填写任务名以及描述等字段
配置
gitea
的仓库信息,其中凭证选取上一步骤中配置的账号密码配置远程构建,使得每次使用
git push
代码到gitea
后,可以自动触发jenkins
进行构建记住远程构建时的
url
,图中的时JENKINS_URL/job/gitea-nginx/build?token=TOKEN_NAME
其中
JENKINS_URL
可以在系统管理----->>>系统配置中查看,TOKEN_NAME
就是自定义写入的字符写入构建脚本,本次测试中使用的
shell
脚本保存该任务即可
-
在
gitea
中配置web
钩子在创建的仓库的仓库配置中,可以添加
web
钩子,配置如下url
部分填写,刚才在jenkins
中配置的远程构建的url
http
方法填写为post
配置完成后,点击测试推送即可,查看推送结果
当推送结果为正确的时候,可以在
jenkins
中查看到触发的构建任务在运行点击对应的构建任务,可以查看到该任务构建的详细过程
问题集锦
-
jenkins
构建时,提示没有权限如下
原因:
jenkins
的进程运行时,默认使用的时jenkins
用户,而运行docker
命令需要root
权限,所有提示没有权限解决方法:
修改
/etc/sysconfig/jenkins
文件,将JENKINS_USER
使用root
用户运行即可
-
在
gitea
中配置远程构建的url
后,点击测试推送如下原因:
jenkins
运行的时候,默认开启CSRF
,关闭即可解决方法:
-
直接在
jenkins
中关闭配置路径:jenkins----->>>系统管理----->>>全局安全配置----->>>跨站请求伪造防护
-
高版本的
jenkins
中无法直接在界面上关闭的话,只能在配置文件中进行修改修改
/etc/sysconfig/jenkins
中的JENKINS_JAVA_OPTIONS
参数,追加-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
即可
-
-
在
gitea
中配置远程构建的url
后,点击推送提示如下原因:
jenkins
没有开启匿名用户可读解决方法:
在设置中开启即可