首页 > 系统相关 >在Ubuntu机器上使用war包安装Jenkins

在Ubuntu机器上使用war包安装Jenkins

时间:2022-09-04 14:56:10浏览次数:94  
标签:JDK 启动 Ubuntu jenkins Jenkins local war

因为一些需求需要迁移之前使用的Jenkins,原来是按照官方文档使用apt方式安装的,这次搬迁后的机器由于默认不通外网(可以通过代理走外网),因此趁此机会,尝试改用war包方式安装

环境目标

系统Ubuntu 18.04,默认JDK设为8,以JDK 11启动Jenkins主节点,以JDK 8启动Jenkins子节点

注:实际子节点为另一台机器,默认设为8是因为机器上其他应用需要运行在该环境下,以JDK 8启动节点是因为自动化代码不支持JDK 11

安装步骤

安装包准备

由于Jenkins最后一版支持Java 8的版本为2.356,因此从https://get.jenkins.io/war/2.356/下载该包并上传至服务器/home/soul目录下(soul是我创建的账号名)

Java环境安装

参考https://www.cnblogs.com/soultraitor/p/16654030.html,由于内网软件源上有这两个软件,因此可以直接安装,否则需要更换外网软件源,并开启代理安装

注:JDK 10在执行java -version时也会被认为是JDK 11,但实际无法启动Jenkins,需要安装真正的JDK 11

Jenkins启动

war包安装启动可参考官方文档:https://www.jenkins.io/doc/book/installing/war-file/,安装后默认安装位置为/home/soul/.jenkins目录

由于直接启动后,关闭终端就会导致进程终止,因此需要使用nohup进行后台启动,同时为了方便启动/终止Jenkins进程,这里使用脚本来实现

在jenkins.war同目录下新建jenkins.sh文件

#!/bin/bash
 
pid=$(ps -ef | grep jenkins.war | grep -v 'grep' | awk '{print $2}')
if [ "$1" = "start" ]; then
    if [ -n "$pid" ]; then
        echo 'jenkins is running...'
    else
        ### java启动服务 配置java安装根路径,和启动war包存的根路径
        nohup /usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar /home/soul/jenkins.war >/dev/null 2>&1 &
    fi
elif [ "$1" = "stop" ]; then
    exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}' | xargs kill -9
    echo 'jenkins is stopped...'
else
    echo "Please input like this:"./jenkins.sh start" or "./jenkins.sh stop""
fi

之后即可使用./jenkins.sh start./jenkins.sh stop来启停Jenkins

首次启动进行初始化配置时,由于无法连接外网,因此会下载不了插件,此时可选择配置代理,之后即可正常下载插件

注:代理地址不要带http协议头

设置开机启动Jenkins

首先在/etc/systemd/system目录下创建rc-local.service文件

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
  
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
  
[Install]
WantedBy=multi-user.target

然后在/etc下创建rc.local文件,并设置权限sudo chmod +x rc.local,文件内容如下,中间注释以下,exit 0以上的部分是启动所需命令,意为使用soul账号执行启动命令(否则会用root账号启动,与原先soul启动的不是同一个Jenkins)

#!/bin/bash
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
 
/bin/su - soul -c "/home/soul/jenkins.sh start"
 
exit 0

最后执行sudo systemctl enable rc-local将服务设为开机启动,重启机器即可

Jenkins子节点配置

工具位置中,JDK指定路径为/usr/lib/jvm/java-8-openjdk-amd64/jre

标签:JDK,启动,Ubuntu,jenkins,Jenkins,local,war
From: https://www.cnblogs.com/soultraitor/p/16655100.html

相关文章

  • Ubuntu常用快捷键
    一、打开Terminal的快捷键是Ctrl+Alt+T二、中止运行Ctrl+C一般最常用的是cd,ls, mkdir,rmdir,cp,rm,mv,clear,pwd,shutdown.一般使用时只需记住常用命令,不清......
  • Jenkins中HTML报告无法正常显示问题解决
    自动化结果生成了HTML报告,但是在Jenkins中打开报告却显示空白,打开控制台,可以看到该报错参考https://www.jenkins.io/doc/book/security/configuring-content-security-po......
  • Ubuntu下使用apt-get命令查询并安装指定版本的软件
    执行以下命令,查询软件所有的版本号sudoapt-cachemadison<package><package>为需要安装的包名,返回结果第二列即可用的版本号执行以下命令,安装指定版本的软件sudoapt......
  • 匿名远程启动jenkins的job
    安装jenkins插件BuildAuthorizationTokenRootjob配置中的构建触发器,勾选触发远程构建,输入要用的令牌,如soul通过jenkins地址调用触发非参数化job:http://${jenkins_u......
  • HC32L110(五) Ubuntu20.04 VSCode的Debug环境配置
    目录HC32L110(一)HC32L110芯片介绍和Win10下的烧录HC32L110(二)HC32L110在Ubuntu下的烧录HC32L110(三)HC32L110的GCC工具链和VSCode开发环境HC32L110(四)HC32L110......
  • 使用VMware Workstation创建的虚拟机无法连接网络解决方法
    引言:最近打开虚拟机老是连接不上网络,在网上找这前两个方法试还是一直不行,最后才知道忘记重启DHCPservice和NATservice1、查看虚拟机的设置,确保虚拟机网络连接的方式勾选......
  • ubuntu20.04无法正确识别Intel Corporation UHD Graphics 630集成显卡的问题
    我的电脑硬件配置:CPU:Intel®Core™[email protected]×12显卡:MesaIntel®UHDGraphics630(CFLGT2)最开始我安装的是ubuntu22.04,显卡的识别没问题,双......
  • Windows/Ubuntu 双系统完美教程
    观前提示此处假定你已经安装好Windows,并且能够看懂英语。下载Ubuntu这里不同于一般推荐于英文官网下载,此处建议在中文官网下载。这样可以利用Ubuntu在国内架设的镜像,也......
  • ubuntu 多版本python并存
    在安装了最新的ubuntu22.04后,自带的python版本为python3.10,然而我需要的一个package仅支持到python3.7。因此,我需要安装python3.7。1、安装python3.7sudoaptupdatesu......
  • k8s中安装jenkins
    编写jenkins.yaml说明:容器跑起来后,jenkins的目录是/var/jenkins_home存储卷用的是hostPath,这里面我们指定pod调度到k8s-master01在k8s-master01上创建目录:mkdi......