Linux下jenkins的安装与配置
安装jenkins
上jenkins官网查看其安装方法 https://www.jenkins.io/zh/download/
第一次选了稳定版,但是在装插件的过程中出现插件不适应于当前版本的问题(稳定版更新较慢),遂将其卸载,安装了定期发布版。安装命令如下:
1 | # 下载repo 文件 |
启动jenkins
1 | service jenkins start |
启动以后报个错:Job for jenkins.service failed because a timeout was exceeded.
浏览器访问Jenkins提示如下
因为访问官网的源太慢。我们需要换一个源,不使用官网的源
查找文件 find / -name *.UpdateCenter.xml,结果是 /var/lib/jenkins/hudson.model.UpdateCenter.xml
用vim修改该文件。
将url标签里面的内容 https://updates.jenkins.io/update-center.json
改为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
重新启动即可,完成后打开浏览器输入ip:8080,
默认密码用cat /var/lib/jenkins/secrets/initialAdminPassword查看
登入后安装推荐插件
创建jenkins任务
填写git地址用户名密码等等,步骤略,构建命令:
1 | hexo clean |
开始构建
报错了 hexo:command not found
但是用ssh远程连接服务器找到jenkins的工程所在目录/var/lib/jenkins/workspace/myblog 执行上述命令是成功的,不知道为何jenkins执行它们就不能成功。搜索了一堆解决方案:
尝试方法1:
修改Jenkins的配置文件 vim /etc/sysconfig/jenkins 将 JENKINS_USER=“root”由Jenkins改为root,在构建命令前增加#!/bin/bash -ilex
解析:可以通过-i参数和-l参数让bash为login shell and interactive shell,就可以读取/etc/profile和~/.bash_profile等文件,对于e参数表示一旦出错,就退出当前的shell,x参数表示可以显示所执行的每一条命令。
重启Jenkins,重新构建,并不生效。
尝试方法2:
echo $PATH
查看系统环境变量,将服务器的环境变量加入Jenkins。还是不生效。
尝试方法3:
搜索“Jenkins执行脚本没有权限”找到方法如下:
修改默认用户权限
1 | chown -R root:root /var/log/jenkins/ |
执行之后重启jenkins,这个时候坏了,Jenkins都不能重启了。
尝试方法4:
再次搜索‘jenkins command not found’找到如下解决办法:
在Google中突然发现一篇修改端口踩坑的文章,文章中提到使用systemctl 启动时不会使用上述的etc/init.d/jenkins配置文件。
而是会使用/usr/lib/systemd/system/jenkins.service文件,vim /usr/lib/systemd/system/jenkins.service将user=jenkins改为root,重启。此时Jenkins又启动起来了,但是构建项目依然报错。
经过同事提醒,再次尝试方法1,结果成功了,终于成功了。
记录一下配置Jenkins的全过程。