Jenkins安装避坑摘要

Jenkins安装避坑摘要

首先还是得感谢师弟刘嘉青.不但帮我解决环境问题,还教我处理问题的方式

安装容器化的还是LInux机的jenkins?

推荐直接在Linux上安装,主要是因为我在使用k8s安装jenkins的时候,出现了很奇怪的问题,难以解决,比如容器中对应的目录下,没有updates目录,也没有default.json文件,没法重新设置插件源

安装什么版本的jenkins?

一开始,我还纠结于,安装哪一个版本,然后也没有人告诉我要安装哪一个版本,于是就直接到网上找了一个指导,就安装了起来,比较幸运,确实也能用,但是在安装插件的时候就头疼了,安装那些插件报错提示让我把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包,也可能有,但是我没有轻易能够找到,所以还是推荐清华源吧

JENKINS_USER使用什么用户?

推荐直接使用root用户,因为这个用户具有很高的权限,可以对任意文件夹进行读写,而如果是默认的jenkins账户的话,就还要对jenkins说要修改的文件夹进行赋权

在/etc/sysconfig/jenkins中修改,具体修改查看网上的博客

jenkins如何设置java路径

  1. 如果你是直接 /usr/bin/jenkins去启动的话,只要将java的安装路径设置到/etc/profile中就可以了,当然/etc/profile修改完成之后,需要使用source去生效更新一下

  2. 如果是使用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中修改,具体修改查看网上的博客

要把java1.8重装成java17?

这个操作是很危险的,不懂操作的话,轻则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

你可能感兴趣的:(自动化测试,学习笔记,jenkins,运维,linux)