Bootstrap

【Linux】CentOS 7.9安装jenkins(详细步骤)

⭐安装java环境

官网下载: https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html

🍁上传到对应目录


创建文件夹并进入文件

mkdir -p /usr/local/java
cd /usr/local/java

安装文件上传命令 并上传文件

rz
yum install lrzsz

🍁解压jdk


解压文件

tar -zxvf jdk-11.0.17_linux-x64_bin.tar.gz

一样没有就安装一下解压命令

yum install tar

🍁配置环境变量


配置环境变量

vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk-11.0.17
export PATH=${JAVA_HOME}/bin:$PATH

刷新环境变量

source /etc/profile

🍁检查是否安装成功


java -version

⭐安装maven

官网下载: https://maven.apache.org/download.cgi
在这里插入图片描述
在这里插入图片描述

🍁上传到对应目录


创建文件夹并进入文件

mkdir -p /usr/local/maven
cd /usr/local/maven

🍁解压


tar -zxvf apache-maven-3.9.3-bin.tar.gz

🍁配置环境变量


配置环境变量

vim /etc/profile
export M2_HOME=/usr/local/maven/apache-maven-3.9.3
export PATH=$M2_HOME/bin:$PATH

刷新环境变量

source /etc/profile

🍁检查是否安装成功


mvn -v

记得把自己setting文件替换上去

⭐安装git

yum install git

⭐安装jenkins

🍁导入镜像


yum -y install ca-certificates
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

🍁导入公钥


rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

🍁查看Linux系统中是否安装了jenkins


rpm -qa | grep jenkins

若已经安装了,则需要使用命令yum -y remove jenkins进行卸载。若没有安装,则进行下一步。

🍁安装jenkins


yum install fontconfig java-11-openjdk
yum install jenkins

🍁修改插件下载地址


默认安装为该地址

cd /var/lib/jenkins/updates

🍁修改jenkins配置


需要修改的配置基本都是修改这两个配置文件即可
vim /etc/sysconfig/jenkins
vim /usr/lib/systemd/system/jenkins.service
记得重启
systemctl daemon-reload
systemctl restart jenkins

🍁设置Jenkins端口


vim /etc/sysconfig/jenkins
# 端口可以改成自己想要的
JENKINS_PORT="6666"
vim /etc/init.d/jenkins
#  路径后面一定跟启动路径/bin/java
candidates="/usr/local/java/jdk-11.0.17/bin/java"

-----------------------------------------------------------------------
vim /usr/lib/systemd/system/jenkins.service
# 添加
Environment="JENKINS_PORT=6666"

# vim /etc/systemd/system/jenkins.service.d/override.conf

Environment="JENKINS_PREFIX=/jenkins"
-----------------------------------------------------------------------

🍁设置Jenkins 内存大小


vim /etc/sysconfig/jenkins
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=512m"
vim /usr/lib/systemd/system/jenkins.service
Environment="JAVA_OPTS=-Djava.awt.headless=true -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=512m"

🍁设置 jenkins 使用root 权限


vim /etc/sysconfig/jenkins
#配置用户
$JENKINS_USER="root"
# 修改权限
chown -R root:root /var/lib/jenkins 
chown -R root:root /var/cache/jenkins 
chown -R root:root /var/log/jenkins

vim /usr/lib/systemd/system/jenkins.service
#修改一下内容
JENKINS_USER="root"
JENKINS_GROUP="root"
# 重启
systemctl daemon-reload
systemctl restart jenkins 
ps -ef | grep jenkins

这个显示root 才算成功
在这里插入图片描述

🍁设置 jenkins 工作目录

vim /usr/lib/systemd/system/jenkins.service
# 修改以下参数
Environment="JENKINS_HOME=/data/apps/jenkins"
vim /etc/sysconfig/jenkins
JENKINS_HOME="/data/apps/jenkins"

🍁Jenkins启动


# 启动jenkins
systemctl daemon-reload
systemctl start jenkins
# 查看jenkins启动状态
systemctl status jenkins
# 关闭jenkins
systemctl daemon-reload
systemctl stop jenkins

# 重启jenkins
systemctl daemon-reload
systemctl restart jenkins
# 设置成开机自启
#1、开启
systemctl enable jenkins
#2、关闭
systemctl disable jenkins

🍁Jenkins访问

# 查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword

浏览器中登录网址:http://ip:8080/,输入刚刚获得的管理员密码,点击“继续”即可。
如果还访问不了看下是不是端口没有开放

# 返回no表示没有开放
firewall-cmd --query-port=6666/tcp
firewall-cmd --zone=public --add-port=6666/tcp --permanent
# 此时查询还是no,需要再重启防火墙
firewall-cmd --reload

⭐Jenkins错误排查


🍁 无法启动异常


systemctl restart jenkins 启动时发生异常该如何排查 Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
在这里插入图片描述

🍁 按照步骤一步步排查


  • cd /etc/init.d/
  • ./jenkins restart 看下控制台是否打印真正的错误,如果没有打印在执行下一步
  • vim jenkins 找到start 的命令
    在这里插入图片描述
  • 把这些参数都打打印到控制台 $JENKINS_USER $JENKINS_PID_FILE $JENKINS_JAVA_CMD $JENKINS_JAVA_OPTIONS $JENKINS_HOME $JENKINS_WAR $PARAMS
    在这里插入图片描述
  • 重启启动./jenkins restart 可以看到控制打印各个参数所在位置 日志在/var/log/jenkins/jenkins.log
    在这里插入图片描述
  • 查看日志 tail -n 200 /var/log/jenkins/jenkins.log 可以看到是端口被占用了在这里插入图片描述
  • netstat -tlnp |grep 8080 查看端口占用
    在这里插入图片描述
  • kill -9 xxx 杀死进程在重新启动就可以了

🍁当使用 systemctl restart jenkins 无法启动 Jenkins 服务,但是通过 ./jenkins restart 可以启动成功时

  • 可能存在以下几种详细原因:
    1. 执行路径不一致:在执行命令 systemctl restart jenkins 时,系统会根据配置文件中指定的可执行文件路径来查找并执行。可能存在环境变量或配置问题导致系统无法正确找到 Jenkins 的可执行文件。而使用 ./jenkins restart 直接执行 Jenkins 启动脚本,则可以确保使用了正确的路径。
    2. 环境变量问题:在 systemctl 命令中,有时需要明确地设置环境变量,以便 Jenkins 进程能够正常工作。这包括设置 Java 路径、Jenkins Home 目录等。如果没有正确地配置环境变量,可能会使得 systemctl restart jenkins 失败。相比之下,直接执行 ./jenkins restart 可能继承了当前终端的环境变量,因此可以成功启动 Jenkins。
    3. 用户权限问题:systemctl restart 命令需要足够的权限来重新启动 Jenkins 服务。如果当前用户没有足够的权限,将无法执行该命令。一种解决方法是使用 sudo systemctl restart jenkins 以提升权限。而直接执行 ./jenkins restart 时,可能已经具备了必要的权限。
    4. 配置文件问题:systemctl 命令使用 systemd 服务管理器来启动和管理服务。Jenkins 在 systemd 的配置文件中指定了启动脚本的路径、选项等信息。如果配置文件有误,比如路径错误或参数设置不正确,会导致 systemctl restart jenkins 失败。而直接执行 ./jenkins restart 则跳过了 systemd 的配置,可能绕过了潜在的配置问题。
  • 需要注意的是,具体原因可能因系统环境和配置差异而有所变化。查看系统日志以获取更多详细信息,并检查 Jenkins 的配置文件和相关权限是否正确设置。你也可以尝试使用 sudo systemctl status jenkins 命令来查看 Jenkins 服务的状态和错误日志,以进一步排除问题。
;