首先还是得感谢师弟刘嘉青.不但帮我解决环境问题,还教我处理问题的方式
推荐直接在Linux上安装,主要是因为我在使用k8s安装jenkins的时候,出现了很奇怪的问题,难以解决,比如容器中对应的目录下,没有updates目录,也没有default.json文件,没法重新设置插件源
一开始,我还纠结于,安装哪一个版本,然后也没有人告诉我要安装哪一个版本,于是就直接到网上找了一个指导,就安装了起来,比较幸运,确实也能用,但是在安装插件的时候就头疼了,安装那些插件报错提示让我把jenkins的版本你升级到某一个更高的版本,于是我就猜测,是插件的版本较高了,然后jenkins已经不适配了,既然如此,那我还不如直接安装最新版本的就行了,因为那样子,肯定是可以的嘛
但是新手又会有另外一个问题,以为直接安装最新版本的jenkins,并且再将java设置成已有的就行,但是这里有一个很大的问题,那就是jenkins的版本,极有可能和java版本不配套,还好比较幸运找到官方的说明,请一定要看
https://mirrors.jenkins.io/war-stable/
即
Jenkins版本 | 对应适配的java版本 |
---|---|
2.361.1 (September 2022) and newer | Java 11 or Java 17 |
2.346.1 (June 2022) and newer | Java 8, Java 11, or Java 17 |
2.164.1 (March 2019) and newer | Java 8 or Java 11 |
2.60.1 (June 2017) and newer | Java 8 |
1.625.1 (October 2015) and newer | Java 7 |
所以这里决定安装2.361.1以上的jenkins版本,并且java对应的安装java17
但是上哪里找jenkins的安装包呢? 推荐清华源
https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
因为jenkins官网上面的,就直接是一个war文件来的,并没有rpm包,也可能有,但是我没有轻易能够找到,所以还是推荐清华源吧
推荐直接使用root用户,因为这个用户具有很高的权限,可以对任意文件夹进行读写,而如果是默认的jenkins账户的话,就还要对jenkins说要修改的文件夹进行赋权
在/etc/sysconfig/jenkins中修改,具体修改查看网上的博客
如果你是直接 /usr/bin/jenkins去启动的话,只要将java的安装路径设置到/etc/profile中就可以了,当然/etc/profile修改完成之后,需要使用source去生效更新一下
如果是使用systemctl 去启动jenkins的话,就一定要保证软链接存在
ln -s /usr/local/java/jdk-17.0.5/bin/java /etc/alternatives/java
ln -s /usr/local/java/jdk-17.0.5/bin/javac /etc/alternatives/javac
ln -s /usr/local/java/jdk-17.0.5/bin/javac /usr/bin/javac
ln -s /usr/local/java/jdk-17.0.5/bin/java /usr/bin/java
因为systemctl就是使用的这些软链接,而不是/etc/profile中设置
如果没有这些软链接的话,也是有骚操作的,就是在systemd目录下的jenkins.service文件中加入java的环境变量,但是每一个依赖于java的程序都要这么搞,就会很麻烦了
参考如下:
vim /usr/lib/systemd/system/jenkins.service
[Service]
Type=notify
NotifyAccess=main
#Environment=PATH=/usr/local/java/jdk-17.0.5/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ExecStart=/usr/bin/jenkins
Restart=on-failure
SuccessExitStatus=143
默认是8080,也可以修改为其他的端口
注意: 如果使用的服务器是阿里云上的,需要在安全组中放开相关端口
也有可能有时候要关闭防火墙,或者设置防火墙
在/etc/sysconfig/jenkins中修改,具体修改查看网上的博客
这个操作是很危险的,不懂操作的话,轻则systemctl不能启动jenkins,重则每一个依赖java的软件都要单独设置环境变量
一开始我以为,在安装java8的情况下去安装java17是很容易的,操作方法是将java17的tar.gz包解压到/usr/local/java路径,然后再相对应的将/etc/profile中的java的环境修改过来就行了,但是居然systemctl不能用于启动jenkins了.后来使用journalctl -xe定位才发现,找不到java,其实就是我最新安装的java在终端在中能生效,因为我已经配置了环境变量了,但是在systemd在中并不能生效,后来我去查找了重装java的指导,才发现相关的软链接没有处理.
即
在安装java17前,需要将java8的软链接删除,命令是
rm -rf /etc/alternatives/java
rm -rf /etc/alternatives/javac
rm -rf /src/bin/java
rm -rf /src/bin/javac
然后在安装好java17之后,设置环境变量之后,还要设置一下软链接
ln -s /usr/local/java/jdk-17.0.5/bin/java /etc/alternatives/java
ln -s /usr/local/java/jdk-17.0.5/bin/javac /etc/alternatives/javac
ln -s /usr/local/java/jdk-17.0.5/bin/javac /usr/bin/javac
ln -s /usr/local/java/jdk-17.0.5/bin/java /usr/bin/java