CentOs7,安装jdk17,本文就不再介绍了,随便找个帖子就能安装,本文主要介绍疑Jenkins安装疑难杂症(非常详细)
随便找个路径,安装2.387.1版本,执行该链接会在目录下得到一个rpm的安装包
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.387.1-1.1.noarch.rpm
注意,本教程只针对这个版本,因为Jenkins从10月份已经不再支持centos7,包括2.4+版本都是很难在centos7上安装的,2.2版本的安装配置方式和2.3不同,担心小版本之间也有不同,所以本文只针对2.387.1版本
如果url404失效了,说明该网站调整了,可自行访问https://mirrors.tuna.tsinghua.edu.cn/jenkins,选择尽可能相近的版本
yum -y localinstall jenkins-2.387.1-1.1.noarch.rpm
rpm -ql jenkins
此条命令返回的是Jenkins的一些安装信息,其中jenkins.service就是它的配置文件(区别于老版本)
which java
复制打印的结果,后面用到
vim /usr/lib/systemd/system/jenkins.service
配置java_home
找到其中的# Environment="JAVA_HOME开头的注释,放开注释,修改值为你的java路径(主要要在bin的上一级):
修改运行的默认端口号,默认是8080,很容易与别的起冲突,所以我这里修改为9301
修改java运行源
vim /etc/init.d/jenkins
粘贴上面which java返回的结果(一定要到bin/java,java是个文件不是文件夹)
从jenkins.service配置文件中可以看出,里面指定了jenkins的执行用户,默认是jenkins,若改成root,可能会给生产环境或者jenkins运行带来问题,所以本文这里手动创建用户
创建用户命令,并指定系统重要文件不可随意修改
chattr -i /etc/group;chattr -i /etc/gshadow;chattr -i /etc/passwd;chattr -i /etc/shadow
groupadd jenkins
useradd -g jenkins jenkins
chattr +i /etc/group;chattr +i /etc/gshadow;chattr +i /etc/passwd;chattr +i /etc/shadow
chown -R jenkins:jenkins /var/lib/jenkins
chown -R jenkins:jenkins /var/cache/jenkins
chown -R jenkins:jenkins /var/log/jenkins
firewall-cmd --zone=public --add-port=你之前配置的端口(本文的9301)/tcp --permanent
firewall-cmd --reload
如果是阿里云服务器,需要配置安全组9301->0.0.0.0/0
# 启动
systemctl start jenkins
# 停止
systemctl stop jenkins
# 查看状态
systemctl status jenkins
# 刷新配置(每次配置文件修改后都需要执行这个才能生效,否则运行时会报错)
systemctl daemon-reload
# 查询jenkins运行日志,执行后通过长按上下键查询完整上下文日志,可用于启动报错的排查
journalctl -xe
# 判断jenkins是否运行成功
netstat -tunlp |grep 输入配置的运行端口
运行后如下图所示就代表成功了
异常情况有很多,我把我遇到的坑列出来,但还是得靠各位的查日志排错能力。
Job for jenkins.service failed because a timeout was exceeded.
若观察journalctl -xe发现有java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration,可以尝试执行,之后再stop、start即可
yum install -y fontconfig
还有一种可能性是用户没有第7步那几个文件夹的权限
原因1:
jenkins.service配置文件中,java_home没配对,再仔细阅读我上面写的
原因2:
Linux安装的jdk版本过低,我用的jdk17是没问题的
有些时候可能哪里错乱了,想重装一下,可以执行此命令彻底卸载
rpm -e jenkins
find / -iname jenkins | xargs -n 1000 rm -rf
卸载完可再执行第3步的命令,若提示未安装证明卸载完成
浏览器访问你的IP和你配置的端口(本文是9301),看到如下画面证明你成功了一大步了,后面都是傻瓜式操作
http://xx.xxx.xxx.xxx:9301
第一次进入会要求输入密码,而这个密码就在你服务器上
cat /var/lib/jenkins/secrets/initialAdminPassword
拷贝返回的结果至网页即可,如果输入完点继续没反应,不用惊慌,刷新页面重新点,或者换个火狐浏览器就行了
下一步我选择安装推荐的插件
自动安装
创建你能记得住的用户名和密码
url就填访问路径
看到这个页面就代表你成功了!