Ubuntu环境下使用APT安装Jenkins(详细教程)

2023-11-20

目录

1、安装JDK

        1.1、使用APT查找已安装的JDK

         1.2、若没有JDK11,则需要安装

2、使用war包或者APT两种安装方式

        2.1、war包安装(推荐,方法简单,配置使用JDK)

        2.2、APT安装

3、配置Jenkins

        3.1、初始化Jenkins

        3.2、系统配置

                3.2.1、Global Tool Configuration

                3.2.2、Configure System

 4、卸载Jenkins


1、安装JDK

前提提示:安装Jenkins需要安装java11以上的版本,如果本地已经安装JDK8,可以另外安装一个JDK11,并在Jenkins启动脚本里面修改JAVA_HOME的变量,并在执行java语句的时候使用JAVA_HOME路径下的java,即可在不影响原来JDK8的情况下使用JDK11。

        1.1、使用APT查找已安装的JDK

apt list --installed | grep -i jdk

         1.2、若没有JDK11,则需要安装

                1.2.1、添加JDK11的APT源

# 将添加OpenJDK官方PPA源,其中包含JDK 11的安装包
sudo add-apt-repository ppa:openjdk-r/ppa

                1.2.2、 更新APT软件源列表

sudo apt-get update

                 1.2.3、安装JDK11,同时保留原来安装的JDK版本

sudo apt-get install openjdk-11-jdk

                1.2.4、安装完成后会自动将环境变量JAVA_HOME设置为JDK11的安装目录,可通过下方命令重新设置即可。

# 该命令将列出当前系统上安装的所有Java版本,并提示选择默认的Java版本。
sudo update-alternatives --config java

                        效果如图所示:

2、使用war包或者APT两种安装方式

        2.1、war包安装(推荐,方法简单,配置使用JDK)

                2.1.1、创建安装目录并进入

cd /home/software/
mkdir jenkins
cd jenkins

                2.1.2、使用wget下载jenkins war包

wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/jenkins.war

                2.1.3、创建日志目录,用于记录jenkins运行日志

mkdir logs

                2.1.4、创建jenkins启动脚本start.sh

vim start.sh

                2.1.5、start.sh内容如下

#!/bin/bash
export JENKINS_HOME=/home/swp/jenkins
cd $JENKINS_HOME

# 设置JAVA_HOME变量并应用以修改jenkins运行JDK版本,自行修改为JDK安装路径,使用APT安装的JDK11默认路径如下
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

# 使用JAVA_HOME下的JDK
# 并修改端口号8080为8089,避免冲突,该端口号用于访问jenkins后台管理网址。
# 设置日志路径
nohup $JAVA_HOME/bin/java -Dhudson.model.DownloadService.noSignatureCheck=true -Xmx2g -jar jenkins.war --httpPort=8089 > logs/jenkins.log 2>&1 &

# 显示实时日志
tail -f logs/jenkins.log

                2.1.6、创建jenkins配置文件hudson.model.UpdateCenter.xml

vim hudson.model.UpdateCenter.xml

                2.1.7、hudson.model.UpdateCenter.xml内容如下

<?xml version='1.1' encoding='UTF-8'?>
<sites>
    <site>
        <id>default</id>
        <url>https://updates.jenkins-zh.cn/update-center.json</url>
    </site>
</sites>

                2.1.8、给启动脚本文件start.sh提权,避免在jenkins上报错权限不够

sudo chmod 777 start.sh

                2.1.9、运行脚本文件start.sh启动jenkins

sh start.sh

若报错Failed to bind to 0.0.0.0/0.0.0.0:8080以及Failed to start jetty,修改启动脚本start.sh的port端口号,避免冲突。

若是提示Running with Java 8 from /usr/lib/jvm/java-8-openjdk-amd64/jre, which is older than the minimum required version (Java 11),则需表明未使用JDK11。安装好JDK11并于启动脚本中应用即可。

        2.2、APT安装

                2.2.1、配置APT源

sudo apt-get install --reinstall ca-certificates

                2.2.2、安装存储库密钥 

wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -

                2.2.3、将Debian包存储库地址附加到服务器的sources.list中 

sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

                2.2.4、更新Ubuntu的source.list软件源列表,以便apt-get将下载较新的存储库

# 执行该语句若是报错Could not connect to pkg.jenkins.io:80,多执行几次即可
sudo apt-get update

若执行完sudo apt-get update 报W: GPG error: https://pkg.jenkins.io/debian-stable binary/ Release: The following signatures couldn't be verified because the pavailable: NO_PUBKEY  XXXXXXXXXXXXXXX,可通过下方命令解决,XXXXXXXXXXXXXXX为公钥序列号。执行完该命令重新执行sudo apt-get update命令即可。

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys XXXXXXXXXXXXXXX

 问题截图:

                2.2.5、安装Jenkins

sudo apt-get install jenkins

                2.2.6、使用APT方式安装,若需要修改默认端口8080为8089(自行配置),可按如下操作进行

                        2.2.6.1、检查 /etc/init.d/jenkins 脚本,修改 do_start 函数的 check_tcp_port 命令,端口号从 8080 换成 8089;
                        2.2.6.2、修改 /etc/default/jenkins 文件,将端口 8080 改成 8089;
                        2.2.6.3、修改 /usr/lib/systemd/system/jenkins.service,将8080改成8089,并将user和group修改为root。

# 修改/usr/lib/systemd/system/jenkins.service端口配置
Environment="JENKINS_PORT=8089"

3、配置Jenkins

        3.1、初始化Jenkins

                3.1.1、浏览器访问Jenkins配置面板(http:// ip_address_or_domain_name:8089)

                3.1.2、安装推荐的插件

                3.1.3、实例配置默认即可。 

                3.1.3、 创建管理员的时候使用admin账户,跳过创建即可。

        3.2、系统配置

                3.2.1、Global Tool Configuration

                3.2.2、Configure System

                        3.2.2.1、GitHub配置

                                3.2.2.1.1、在 链接名 中输入 GitHub 或者你想要的名字;

                                3.2.2.1.2、GitHub 域名 URL 中输入 GitHub 完整 URL地址: https://api.github.com ;

                                3.2.2.1.3、登录凭据,选择token1或者使用token登录GitHub,点击 Add to - > Jenkins;

                                        3.2.2.1.3.1、Domain 选择 全局凭据;

                                        3.2.2.1.3.2、type 选择 Username with password 或者 Secret text 或其他;

                                        3.2.2.1.3.3、Scope 选择你需要的范围;

                                        3.2.2.1.3.4、输入Username、password 或者 Secret 或其他;

                                        3.2.2.1.3.5、ID, Descripiton 中输入你想要的 ID 和描述点击Add to即可;

                                        3.2.2.1.3.6、可以点击 connection test 尝试连接。

                                3.2.2.1.4、GitHub 链接配置保存后,创建新任务配置 GitHub 链接时在下拉框中选择此任务所需的 GitHub 链接即可。

                        3.2.2.2、SSH Server接收文件的远程服务器配置

                                3.2.2.2.1、SSH Server Name: 需要将相关代码发布到目标服务器的名称,自定义;

                                3.2.2.2.2、Hostname:远程服务器IP;

                                3.2.2.2.3、Username:使用指定用户进行发布;

                                3.2.2.2.4、Remote Directory:远程路径登入到服务器后发布代码的相对根路径;

                                3.2.2.1.5、可以点击 connection test 尝试连接。

  

 4、卸载Jenkins

# 停止jenkins
sudo systemctl stop jenkins
# 卸载jenkins
sudo apt-get remove jenkins
# 移除文件夹(APT默认安装)
sudo rm -rf /var/lib/jenkins
# 移除apt对应源列表
sudo apt-get autoremove
# 校验jenkins是否还存在
which jenkins

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu环境下使用APT安装Jenkins(详细教程) 的相关文章

  • Awk - 计算两个文件之间的每个唯一值和匹配值

    我有两个文件 首先 我尝试获取第 4 列中每个唯一字段的计数 然后匹配第二个文件的第二列中的唯一字段值 File1 第 4 列的每个唯一值和 File2 第 2 列包含我需要在两个文件之间匹配的值 所以本质上 我试图 gt 如果 file2
  • Fedora dnf 更新不起作用?

    当我尝试使用 update 命令更新 Fedora 22 时 sudo dnf update 我收到以下错误 错误 无法同步存储库 更新 的缓存 无法准备内部镜像列表 Curl 错误 6 无法解析主机名 无法解析主机 mirrors fed
  • 如何从 C 程序中获取 NIC 详细信息?

    我想要获取连接到我的计算机的所有 NIC 的以下详细信息 1 接口名称 例如eth0 2 接口编号 如Windows http answers yahoo com question index qid 20080517041705AAOmJ
  • 如何使用远程访问 API 获取 jenkins 的系统配置

    詹金斯提供了很好的远程访问API https wiki jenkins ci org display JENKINS Remote access API 可用于获取大量信息 例如作业和视图 我想知道是否或如何从远程访问 API 获取系统 全
  • 使用 posix_spawn 启动进程

    我正在使用以下代码在 Linux 中启动新进程 pid t processID char argV 192 168 1 40 char 0 int status 1 status posix spawn processID home use
  • 捕获数据包后会发生什么?

    我一直在阅读关于网卡捕获数据包后会发生什么的内容 我读得越多 我就越困惑 首先 我读过传统上 在网卡捕获数据包后 它会被复制到内核空间中的一个内存块 然后复制到用户空间 供随后处理数据包数据的任何应用程序使用 然后我读到了 DMA 其中 N
  • PyPI 上的轮子平台约束有什么限制吗?

    是否有任何地方 PEP 或其他地方 声明关于 Linux 轮子上传范围的限制 PyPI http pypi io 应该有 具体来说 上传是否被认为是可接受的做法linux x86 64轮子到 PyPI 而不是manylinux1 x86 6
  • 使用 inotify 的正确方法是什么?

    我想使用inotifyLinux 上的机制 我希望我的应用程序知道文件何时aaa被改变了 您能给我提供一个如何做到这一点的示例吗 文档 来自监视文件系统活动 inotify https developer ibm com tutorials
  • 配置:错误:无法运行C编译的程序

    我正在尝试使用 Debian Wheezy 操作系统在我的 Raspberry Pi 上安装不同的软件 当我运行尝试配置软件时 我尝试安装我得到此输出 checking for C compiler default output file
  • uWSGI 皇帝权限被拒绝,除非 root

    我尝试使用二进制文件本身的标志 uid www data gid www data 并将其设置在我的配置中 uid www data gid www data 但套接字总是由我正在使用的帐户生成 因此我从 nginx 收到权限被拒绝的错误
  • 在 Linux 上访问 main 之外的主要参数

    是否可以访问参数main在外面main 即在共享库构造函数中 在 Linux 上除了通过解析之外 proc self cmdline 您可以通过将构造函数放入 init array部分 功能在 init array 不像 init 使用相同
  • 如何使用 echo 写入非 ASCII 字符?

    如何写非ASCII http en wikipedia org wiki ASCII使用 echo 的字符 是否有转义序列 例如 012或类似的东西 我想使用以下方法将 ASCII 字符附加到文件中 echo gt gt file 如果您关
  • 如何访问 mmaped /dev/mem 而不导致 Linux 内核崩溃?

    我有一个简单的程序 尝试访问用户空间中的物理内存 其中内核存储第一个结构页 在 64 位机器上 该地址是 内核虚拟地址 ffffea0000000000 物理地址 0000620000000000 我正在尝试通过用户空间中的 mmap 访问
  • dlopen 或 dlclose 未调用信号处理程序

    我在随机时间内收到分段错误 我注册了信号 但发生分段错误时未调用信号处理程序 include
  • 未找到 Gem 命令

    我已经在 Ubuntu 10 10 32 位上安装了 gem apt get install gem y 但当我尝试跑步时 gem install something gem 我收到未找到命令的错误 bash gem command not
  • 错误:命令“c++”失败,退出状态为 1

    所以我尝试按照以下说明安装 Pyv8https andrewwilkinson wordpress com 2012 01 23 integrating python and javascript with pyv8 https andre
  • 如何设置Java线程的CPU核心亲和力?

    我搜索了以前关于类似主题的帖子 但找不到合适的答案 因此提出这个问题 非常感谢您帮助回答 我知道在 Linux 中通过任务集命令设置进程与特定 CPU 核心的关联性 但我想设置 Java 线程与特定 cpu 核心的亲和力 以便属于同一进程的
  • 无需 root 访问权限即可安装 zsh? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有可能 以及如何 我确实需要在几台具有 ssh 访问权限 但没有 root 访问权限 的远程计算机上使用此功能 下载 zsh wget O zsh t
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • jbehave 与 jenkins 的集成

    我必须将 jbehave 与 jenkins 集成 但我不知道该怎么做 我看到我必须在 Jenkins 中创建一个任务 但我不知道应该在哪里连接 jbehave 与此任务 有人可以帮助我吗 Thanks Sarang 所以我假设您已将 JB

随机推荐

  • Unity中级客户端开发工程师的进阶之路

    上期UWA技能成长系统之 Unity高级客户端开发工程师的进阶之路 得到了很多Unity开发者的肯定 通过系统的学习 可以掌握游戏性能瓶颈定位的方法和常见的CPU GPU 内存相关的性能优化方法 UWA技能成长系统是UWA根据学员的职业发展
  • 1分钟快速掌握Vue Router的使用?

    简介 Vue Router 是 Vue js 官方的路由管理器 它和 Vue js 的核心深度集成 让构建单页面应用变得易如反掌 包含的功能有 嵌套的路由 视图表 模块化的 基于组件的路由配置 路由参数 查询 通配符 基于 Vue js 过
  • AI工程化:各家的AI平台、AI中台架构图

    中台的概念 AI 中台是用来构建大规模智能服务的基础设施 是一套完整的人工智能模型全生命周期管理平台和服务体系 提供模型设计训练 模型 算法库 复用标注管理 模型监控服务等能力支持 AI中台旨在让企业业务前台可以短兵作战 小步快跑 降低试错
  • Unity 粒子特效、材质发光 HDR ShaderGraph图文教程[完成lit发光设置]

    效果如图 准备工作 在hdr模式下 关闭Directional Light 相机设置 移动球挂一个点光源作为子节点 设置自行调节 0 创建移动球的材质及shader shader gt 在Project Create Shader Grap
  • 查找出某表字段数据不为空

    DECLARE CURSOR temp IS SELECT COLUMN NAME FROM ALL TAB COLUMNS WHERE TABLE NAME Upper TEST v num NUMBER BEGIN FOR i IN t
  • 如何在 Vultr 上部署 ONLYOFFICE 文档 v7.3

    现在您可使用通过 Vultr 市场提供的一键式应用在 Vultr 架构中轻松部署 Docker 版本的 ONLYOFFICE 文档 一键式应用是什么 一键式应用是一个包含所有必要预配置组件的镜像 可用于便捷地在运行有 Ubuntu OS 的
  • 有向图的邻接表的建立,深度遍历并输出(c语言实现有向网)

    有向图的邻接表的建立 深度遍历并输出 c语言实现有向网 为方便理解 首先先为图的邻接表画一个模型 邻接表可以分为两部分 1 表头节点 2 弧节点 如上图 因为写的代码是有向网 所以选择上图 首先在脑海里建立一个模型 代码如下 include
  • 【PrimeTime 基本命令】

    https www micro ip com drchip php mode 2 cid 17
  • 毕业设计 STM32人体红外测温枪温度采集系统 - 单片机

    文章目录 1 前言 2 主要器件 3 实现效果 4 设计原理 MLX90614 红外温度传感器 5 部分实现代码 6 最后 1 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求
  • go语言的安装已经调试

    go语言作为google的一个主推语言 最近很多人都在研究 也花了一点时间对他的安装进行了测试 本人使用Sublime Text 2 GoSublime gocode 顾名思义首先是安装Go 这里有很详细的安装说明 http code go
  • 单相逆变器的建模与仿真

    1 电路拓扑 本次设计采用单相全桥逆变电路 使用LC滤波器 负载使用单相桥式整流 电路如图所示 2 控制思路 控制部分采用PI控制 包含电压外环和电流内环 而电流内环又分为电感电流反馈和电容电流反馈两种 其中电感电流内环电压外环的控制框图和
  • pip install 国内镜像源

    经验证 阿里的云最快 记得是https不是http 对于Python开发用户来讲 PIP安装软件包是家常便饭 而国外的源下载速度太慢 浪费时间 而且常出现下载后安装出错问题 故把pip安装源替换成国内镜像 可大幅提高下载速度 还可以提高安装
  • 计算机网络学习笔记第四章(网络层)超详细整理

    目录 4 1 网络层概述 1 简介 2 总结 4 2 网络层提供的两种服务 1 面向连接的虚电路服务 2 无连接的数据报服务 3 虚电路服务与数据报服务的对比 4 3 IPv4 1 概述 2 分类编制的IPv4地址 2 1 简介 2 2 总
  • 第六篇:进阶篇 车内的吸声性能及测试方法

    本专栏分享传统NVH知识点 从声学理论 材料声学 汽车噪声振动分析 车辆及其零部件甚至原材料的声学测试方法等多维度介绍汽车NVH 一些专用术语同时给出了中英文对照 欢迎新人 同行 爱好者一起交流 由于内容写的较为仓促 有误的地方欢迎大家批评
  • 【安装】win下的openvino安装及onnx模型转换.xml和.bin

    安装文档参考 openvino安装指导 包含相应依赖的安装 三步到位 我装的是python3 8 vs2019 cmake3 24 0 一般最新版本 这几个安装及注意的细节在文档中都有描述 一定一定要按上述文档安装 并且细节要注意 尤其是o
  • 一道面试题:JVM老年代空间担保机制

    面试问题 昨天面试的时候 面试官问的问题 什么是老年代空间担保机制 担保的过程是什么 老年代空间担保机制是谁给谁担保 为什么要有老年代空间担保机制 或者说空间担保机制的目的是什么 如果没有老年代空间担保机制会有什么不好 下面我们就带着这些问
  • Nuttx操作系统(三):构建模式

    1 1 Nuttx构建配置以及模式 Nuttx有三种不同的构建配置 FLAT构建 这种构建是所代码驻留在公共地址空间中 1 应用 内核以及board logic在一个flat地址环境中 2 所有的地址空间具有相同的属性 PROTECTED构
  • expected primary-expression before 'unsigned' 解决方案

    问题描述 语句result unsigned int 1 lt lt i 在本地可以编译运行 但是上传至LeetCode后出现编译错误 expected primary expression before unsigned 分析 语句太复杂
  • 【MedusaSTears】复杂定时任务SpringBoot+Quartz实例,解决jobclass如何注入一个service类,以及实现简单业务逻辑

    目录 吃水不忘挖井人系列 1 认识了解各种定时任务实现方式 2 本文主要参考 3 其他参考 一 业务需求 这里提一下我对 Scheduled和Quartz的一点小看法 如有误解还请指正 二 软件环境 java版本 SpringBoot版本
  • Ubuntu环境下使用APT安装Jenkins(详细教程)

    目录 1 安装JDK 1 1 使用APT查找已安装的JDK 1 2 若没有JDK11 则需要安装 2 使用war包或者APT两种安装方式 2 1 war包安装 推荐 方法简单 配置使用JDK 2 2 APT安装 3 配置Jenkins 3