首页 > 系统相关 >linux离线安装jenkins及使用教程

linux离线安装jenkins及使用教程

时间:2024-03-29 18:00:14浏览次数:25  
标签:jdk -- 离线 9007 sh linux jenkins war

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

一、下载地址

地址: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>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地址,开机自启动成功

五、git环境准备 

标签:jdk,--,离线,9007,sh,linux,jenkins,war
From: https://blog.csdn.net/weixin_40141628/article/details/137105584

相关文章

  • ssh实现linux机器之间的互相访问和命令控制
    在Linux系统之间互相访问并通过命令控制可以通过多种方式实现,其中最常用的方法是使用SSH(SecureShell)协议。SSH是一个提供加密的网络协议,通过它可以安全地在不安全的网络上进行远程登录和其他网络服务。以下是使用SSH实现Linux系统之间互相访问的基本步骤:1.安装SSH服务在两台Li......
  • 大数据数仓理论1.1-离线
    分区静态分区        内存将划分为多个区域,每个区域对应一个分区,当程序访问内存时系统将为其分配一个固定大小的分区;    优点:简单易于管理    缺点:浪费资源,内存碎片化积多动态分区            内存会划分为不同大小的分区,程......
  • 本地Jenkins.war+SVN实现全自动化持续集成
    准备工作:Jenkins.war包tomcat9JDK19SVNJenkins官网下载:https://www.jenkins.io/download/Tomcat下载https://tomcat.apache.org/SVN下载https://tortoisesvn.en.softonic.com/DJK下载https://www.oracle.com/java/technologies/downloads/一、配置JDK......
  • 使用幸狐LuckFox Pico Plus 板子搭载Alpine Linux,运行dotnet net6程序 闪烁一颗LED灯
    程序截图 实拍 性能消耗非常小的,就是对ROM有要求,SDK+程序占了40M 步骤1:按照链接教程刷入系统步骤2:修改以太信息步骤3:使用ssh登录系统步骤4:搭建dotnet环境,使用手动的方式先下载运行时包下载.NET6.0Runtime(v6.0.28)-LinuxArm32AlpineBinaries(microsoft.co......
  • Linux中ping指令网络不可达
    遇到的该问题有可能是由于网关(gateway)未正确设置而导致的  route-n#查看网关状态 网关显示为0.0.0.0显示无效routeadddefaultgw192.168.**.**#替换为自己的网关地址替换网关后再次查看如上显示则表示设置成功此方法重启后可能再次失效建议通过下面代......
  • Linux硬盘挂载
    挂载方法参考网络文章:https://blog.csdn.net/witch23333/article/details/131163249?spm=1001.2014.3001.5501https://blog.csdn.net/u014217137/article/details/128057593 原理:系统文件由文件/etc/fstab来指定自动挂载所有支持挂载的设备。如在/etc/fstab添加下面这一行:......
  • 转载:Linux 负载均衡
    /procfs运行时文件系统loadavg:算法与内核实现2.2内核基础本文主要关注的是与计算load有关的几个字段,//kernel/sched/sched.h//Thisisthemain,per-CPUrunqueuedatastructure.structrq{unsignedintnr_running;//runningtask数量struct......
  • 【RedHat9.0】Linux中命令行界面nmcli工具——网络连接失败,解决网卡状态unmanaged实例
    问题:网络接口处于unmanaged状态,网络不可达连接失败参考IP地址网络配置的五种方法文章配置网络。在Settings没有Wired有线网络设置键,右上角也没有结构图标识:按照配置网络时的启动命令:报错!!!错误:连接激活失败:未找到适合此连接的设备(设备不可用,因为设备严格不受管理)。......
  • 软件测试面试题--Linux面试题
    1.常用的Linux命令1.ls:列出目录内容。2.cd:改变当前工作目录。3.pwd:显示当前工作目录的路径。4.mkdir:创建新目录。5.rm:删除文件或目录。6.cp:复制文件或目录。7.mv:移动文件或目录。8.touch:创建空文件或修改文件时间戳。9.cat:连接文件并打印到标......
  • Linux电脑如何下载QGIS?
      本文介绍在Linux操作系统Ubuntu版本中,通过命令行的方式,配置QGIS软件的方法。  在Ubuntu等Linux系统中,可以对空间信息加以可视化的遥感、GIS软件很少,比如ArcGIS下属的ArcMap就没有对应的Linux版本(虽然有ArcGISServer,但是其没有办法对空间数据加以可视化)。但是,对于Ubuntu等......