linux离线安装jenkins及使用教程

本教程采用jenkins.war的方式离线安装部署,在线下载的方式会遇到诸多问题,不宜采用

基本环境:

  1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。

  2.git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。

  3.maven客户端,因一般java程序是由maven工程,需要maven打包,当然也有其他打包方        式,如:gradle

一、下载地址

地址:Jenkins download and deployment

下载最新的长期支持版

由于jenkins使用java开发的,所以需要安装的linux服务器装有jdk环境,并且jdk版本支持你所安装的jenkins版本

点击 Hardware and Software requirements,查看下载前的软硬件要求

点击 Java Requirements

根据所下载的长期支持的jenkin版本区间 ,判定支持的jdk版本

因为笔者下载的的是 2.440.2 版本,结合上图判定2.440.2在2.426.1之后,需要的linux服务器安装jdk版本为jdk 11、jdk 17或者jdk 21,三者任意一个都可以,所以最终我选择了jdk 21安装到linux服务器中

当然可能你所在的linux服务器已经安装了jdk 8 或者jdk 11,并且由于其他应用的原因不能再升级jdk,那只需要找到对应jdk支持的jenkins版本进行下载即可

从上图看出,如果linux服务器安装的 jdk 8 ,下载 2.346.1、2.164.1任意一个都可以

如果安装的是 jdk 17,下载2.346.1、2.361.1、2.426.1任意一个

安装的是jdk 11 则以上四个长期版本都支持。

对于历史版本的下载,点击 Past Releases 链接

找到对应的版本下载即可 

 二、上传jenkins.war包

笔者是安装在 /opt下,创建 jenkins文件夹,使用最高权限root用户登录linux服务器

cd /opt

sudo mkdir jenkins
ll

依次输入以上三条命令 

 

进入新创建的jenkins文件夹 

cd  jenkins 

笔者使用的是FinalShell工具上传jenkin.war,一款国产免费的linux服务器 连接工具,功能强大,不过有安全性问题不推荐生产环境使用,推荐使用Xshell和Xftp组合工具

进入jenkins文件夹后可以看到上传的jenkins.war包

三、启动jenkins

先约定jenkins的启动端口为9007,实际自行更改,保证端口不冲突即可 

查看防火墙状态

systemctl status firewalld

防火墙开启状态,则开通 9007 端口 访问权限,并重载防火墙

-- 开通 9007 端口 访问权限

sudo firewall-cmd --permanent --add-port=9007/tcp

-- 重载防火墙

sudo firewall-cmd --reload

cd /opt/jenkins 键入以下命令启动

nohup java -jar jenkins.war --httpPort=9007 | tee jenkins.log 2>&1 & 

命令解释如下:

1. nohup: 这是一个Unix/Linux命令,用于让程序在后台运行,即使用户注销也不会停止运行(No Hang Up)。使用 nohup 可以确保即使SSH会话关闭,Jenkins服务仍然持续运行


2. java -jar jenkins.war --httpPort=9007: 这是启动Jenkins服务的命令,其中 -jar 参数表示要执行包含在WAR文件中的主类(在这种情况下是Jenkins应用),--httpPort=9007 是指明Jenkins服务器监听的HTTP端口号为9007


3. | tee jenkins.log: | 是管道操作符,它将前一个命令的标准输出(stdout)传递给后续命令。tee 命令则接收这些输出,并同时完成两个任务:
将输出内容“复制”一份写入到 jenkins.log 文件中,相当于实时记录了Jenkins启动过程和运行时的日志信息。
继续将接收到的数据传递到下一个管道或者默认的标准输出(此处由于后面没有其他命令,就是当前终端),所以在终端上也能看到相同的日志输出

4. 2>&1: 这个符号组合将标准错误流(stderr)重定向到标准输出流(stdout)。这意味着不论是正常的程序输出还是错误信息,都将统一作为标准输出处理,所以不论是正常日志还是错误日志,都会经过管道并被tee命令捕捉

5. &: 最后的&符号用于将整个命令放入后台运行,使得命令执行后,控制台立刻返回到可输入状态,而无需等待该命令执行完毕

出现以上信息说明 jenkins启动成功 ,即使终端关闭也可以

初始用户名和密码 为 admin    103ed60c535f4c8daec0d81d66b9ea9d

初始admin用户密码如果忘记,则去  /root/.jenkins/secrets/initialAdminPassword 中寻找

使用  tail -f  /root/.jenkins/secrets/initialAdminPassword  打开可以看到存储的初始jenkins密码

 四、设置开机自启动

通过命令 nohup java -jar jenkins.war --httpPort=9007 | tee jenkins.log 2>&1 &  可以后台永久启动jenkins服务,但服务器一旦关闭重启,还是需要进入jenkins.war所在文件夹目录重新执行启动命令

4.1 创建并编辑jenkins.sh 脚本

首先  cd /opt/jenkins,创建jenkins.sh 脚本文件,随便放哪里都可以,但一般和jenkins.war处在同一个文件目录下

 vim  jenkins.sh  

按 i 键 输入以下内容 ,红色部分为需要根据自己对应环境路径自行修改

#!/bin/bash
#主要目的用于开机启动服务,不然 启动jenkins.war包没有java -jar的>权限
JAVA_HOME=/usr/local/jdk/jdk-21.0.2


pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l`
  if [ "$1" = "start" ];then
  if [ $pid -gt 0 ];then
  echo 'jenkins is running...'
else
  #java启动服务 配置java安装根路径,和启动war包存的根路径
  nohup $JAVA_HOME/bin/java -jar /opt/jenkins/jenkins.war>/opt/jenkins/jenkins.log --httpPort=9007  2>&1 &
  fi
  elif [ "$1" = "stop" ];then
  exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9
  echo 'jenkins is stop..'
else
  echo "Please input like this:"./jenkins.sh start" or "./jenkins stop""
  fi

按下 esc键,输入 :wq 保存退出,键入以下命令赋予脚本可执行权限

chmod +x /opt/jenkins/jenkins.sh

4.2 检测jenkins.sh 脚本

在当前jenkins目录下输入

./jenkins.sh stop 

浏览器刷新访问jenkins地址,无法访问

再输入启动命令启动

 ./jenkins.sh start

浏览器再次刷新发现启动成功 

以上说明编写的 jenkins.sh 脚本文件没有问题 

4.3 创建并编辑 jenkins.service 系统服务文件

键入命令

vim /lib/systemd/system/jenkins.service

按 i 键 输入以下命令

[Unit]
Description=Jenkins
After=network.target
 
[Service]
Type=forking
ExecStart=/opt/jenkins/jenkins.sh start
ExecReload=
ExecStop=/opt/jenkins/jenkins.sh stop
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

创建好服务后,执行命令刷新配置 

systemctl daemon-reload

启动脚本

systemctl start jenkins.service

查看状态

systemctl status jenkins.service 

设置开机自启动

systemctl enable jenkins.service 

查看开机自启动的服务列表

systemctl list-units --type=service

看到已存在jenkins.service服务 

输入 reboot重启验证,访问jenkins地址,开机自启动成功

五、jdk环境准备

请移步这篇文章:

linux离线安装jdk-CSDN博客

六、git环境准备 

关于linux系统安装git,请参考笔者这篇博客:

linux安装git-CSDN博客

七、maven安装

maven安装linux参考博客:

linux离线安装maven-CSDN博客

八、jenkins使用

8.1 登录jenkins

 浏览器打开jenkins访问地址,

http://ip:port

笔者的地址为:http://192.168.19.16:9007

输入之前记录的密码 :103ed60c535f4c8daec0d81d66b9ea9d

或者执行命令查看初始密码

tail -f /root/.jenkins/secrets/initialAdminPassword

安装插件,这里要求服务器处于联网状态,自动下载相关插件

  

创建新用户,再选择使用admin账户继续

这里的地址不用修改,就是jenkins的访问地址

8.2 新建管理员权限用户 

继续往下点

点击用户列表,可以看到就一个admin用户,之前创建的管理员用户没成功,应该是笔者点错了没保存

点击系统管理 ,点击管理用户

 create user

 可以看到新建了一个用户,如果想要修改密码等信息,点击编辑按钮进入修改即可

8.3 插件下载

因为jenkins要用来构建前后端项目,所以需要下载有关maven和Node js等等

nodejs              # 构建前端项目
maven integration   # 构建后端项目
webhook             # 自动化构建(网络钩子)
gitlab              # 基础配置
git plugin          # 基础git
publish over ssh    # 连接远程服务器
 

 点击系统管理->插件管理

点击Avaliable plugins,需要什么插件,搜索下载安装即可 ,有的插件需要重启jenkins才能生效,比如maven

相关推荐

  1. linux系统线安装docker服务教程

    2024-04-01 20:58:03       39 阅读
  2. docker线安装教程

    2024-04-01 20:58:03       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-01 20:58:03       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-01 20:58:03       5 阅读
  3. 在Django里面运行非项目文件

    2024-04-01 20:58:03       4 阅读
  4. Python语言-面向对象

    2024-04-01 20:58:03       7 阅读

热门阅读

  1. python转换视频格式为mp4

    2024-04-01 20:58:03       18 阅读
  2. 单例设计模式(2)

    2024-04-01 20:58:03       14 阅读
  3. 微信小程序(黑马优购:商品列表)

    2024-04-01 20:58:03       23 阅读
  4. 使用gradle离线编译ES 8.11

    2024-04-01 20:58:03       19 阅读
  5. Day35:学习尚上优选项目

    2024-04-01 20:58:03       20 阅读
  6. 说2个AI绘画自动生成器

    2024-04-01 20:58:03       18 阅读
  7. 机器视觉系统在工业零件检测中的应用

    2024-04-01 20:58:03       19 阅读
  8. HTML——1.简介、基础、元素

    2024-04-01 20:58:03       21 阅读
  9. C++与C语言

    2024-04-01 20:58:03       22 阅读
  10. LLM--打造Private GPT需要知道的一些概念及术语

    2024-04-01 20:58:03       26 阅读