在 CentOS 8 系统上安装 Jenkins 的全过程

news/2024/12/26 6:28:42 标签: centos, jenkins, linux

一、前言

我是一个前端开发,需要频繁将编写的前端系统打包更新到公司的linux服务器,觉得这种工作纯体力活,有时候太浪费时间,以前用过别人搭建的Jenkins可以很好的解决这个问题。

Jenkins 是一款流行的开源持续集成和持续交付(CI/CD)工具,以下是在 CentOS 8 系统上安装 Jenkins 的详细步骤:

二、安装 Java 环境

Jenkins 是用 Java 编写的工具。它的代码运行需要 Java 虚拟机来执行,就像汽车需要汽油才能跑一样,没有 Java 环境,Jenkins 无法工作。 而且,Jenkins 凭借 Java“一次编写,到处运行”的特性,可以在多种操作系统上使用。同时,它的众多插件很多也是 Java 编写的,这些插件要在 Java 环境里才能正常运行,从而扩展 Jenkins的功能。

1、查看系统信息

执行命令 cat /etc/os-release,确认系统为 CentOS 8,以便后续选择合适的安装包和配置步骤。

cat /etc/os-release

2、查看系统 Java 环境

1. 分别执行以下命令查看系统中是否已安装 Java 相关组件:

  • rpm -qa | grep java:此命令用于查找已安装的所有与 “java” 相关的 RPM 包,可能会列出一些 Java 运行时环境或开发工具包的信息。

  • rpm -qa | grep jdk:专门查找已安装的 JDK(Java Development Kit)包。

  • rpm -qa | grep gcj:检查是否安装了 GNU Java 编译器(GNU Compiler for Java)相关组件。

2. 如果系统中存在旧版本的 Java,并且你打算安装新的 Java 版本,可使用以下命令卸载旧版本:

  • rpm -qa | grep java | xargs rpm -e --nodeps:这会卸载所有通过 RPM 安装的与 “java” 相关的包,--nodeps 选项表示忽略包之间的依赖关系,强制卸载。不过使用此选项时需谨慎,确保不会影响其他正在运行的关键系统服务或应用程序。
  • rpm -qa | grep jdk | xargs rpm -e --nodeps:专门卸载已安装的 JDK 包。

3、安装 Java 环境

1. 配置 yum 镜像源

  • 首先进入 /etc/yum.repos.d/ 目录,使用命令 cd /etc/yum.repos.d

  • 为了防止原有的 yum 镜像源文件被修改或丢失,先创建一个备份目录 mkdir /etc/yum.repos.d/backup,然后将原有的 .repo 文件移动到备份目录中,使用命令 mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/

  • 从阿里云下载适用于 CentOS 8 的镜像源文件,执行命令 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

  • 下载完成后,清理 yum 缓存并重新建立元数据,依次执行以下命令:

  • yum clean all:清除 yum 缓存中的所有数据,包括已下载的 RPM 包和元数据信息。

  • yum makecache:根据新的镜像源文件重新生成 yum 缓存的元数据,以便更快地查找和安装软件包。

  • 最后,使用命令 yum repolist 查看新配置的 yum 镜像源是否生效,列出的仓库列表应显示来自阿里云的源信息。

2.检索 Java 可安装的列表

  • 执行命令 yum list java*,这会列出 yum 仓库中所有与 Java 相关的可安装软件包,包括不同版本的 JDK、JRE(Java Runtime Environment)以及其他 Java 工具和库,方便你选择需要安装的 Java 版本。

3.安装 jdk

  • 根据上一步检索到的列表,选择合适的 JDK 版本进行安装。这里推荐安装 java-17-openjdk*,执行命令 yum install java-17-openjdk* -y-y 选项表示在安装过程中自动回答 “yes”,无需手动确认安装提示。

  • 安装完成后,使用命令 javac 验证 Java 编译器是否安装成功。如果系统能够识别 javac 命令并显示相关帮助信息,则说明 JDK 安装正确。

4.配置 Java 环境

  • Java 默认安装路径通常为 /usr/lib/jvm,你可以进入该目录查看已安装的 Java 版本文件夹。
  • 使用 vim /etc/profile 命令编辑系统环境变量配置文件,在文件末尾添加以下内容:
# java环境变量
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64
JRE_HOME=/usr/lib/jvm/jre-17-openjdk-17.0.1.0.12-2.el8_5.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

  • 注意:上述 JAVA_HOMEJRE_HOME 的路径应根据实际安装的 Java 版本进行调整,确保路径准确无误。
  • 保存并退出 vim 编辑器后,执行命令 source /etc/profile,使新配置的环境变量立即生效。

5.查看 Java 环境变量

  • 分别执行以下命令查看 Java 环境变量的设置情况:

  • echo $JAVA_HOME:应显示你配置的 Java 安装路径,如 /usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64

  • echo $PATH:应包含 $JAVA_HOME/bin 路径,确保系统能够在任何目录下找到 Java 命令。

  • echo $CLASSPATH:应显示你配置的类路径信息,用于 Java 类的加载和查找。

4、安装 Jenkins

1.添加 Jenkins 仓库到 yum

  • 执行命令 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo,这会从 Jenkins 官方网站下载适用于 Red Hat 系(包括 CentOS)的 Jenkins 仓库配置文件,并保存到 /etc/yum.repos.d/ 目录下,命名为 jenkins.repo

  • 接着执行命令 sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key,导入 Jenkins 的 GPG 密钥,用于验证从 Jenkins 仓库下载的软件包的完整性和真实性,确保安装的软件来源可靠。

2.安装 Jenkins

  • 在 CentOS 8 系统上,执行命令 sudo dnf install jenkins 进行 Jenkins 的安装。dnf 是 CentOS 8 中推荐的软件包管理器,它会自动解决安装过程中的依赖关系,并从配置好的 Jenkins 仓库中下载并安装 Jenkins 及其相关依赖包。

  • 在安装过程中,系统会提示你确认安装信息,如软件包的名称、版本、大小以及依赖关系等。你可以查看这些信息,确保安装的内容符合预期,然后按 y 键继续安装。

3.启动 Jenkins 服务

  • 安装完成后,执行命令 sudo systemctl start jenkins 启动 Jenkins 服务。这会启动 Jenkins 后台进程,使其开始监听来自客户端的请求。

4.查看 Jenkins 是否成功启动

  • 执行命令 sudo systemctl status jenkins 查看 Jenkins 服务的运行状态。如果服务成功启动,输出信息中会显示 active (running) 状态,以及一些关于服务运行的详细信息,如进程 ID、启动时间等。

  • 同时,Jenkins 在首次启动时会生成一个管理员密码,用于解锁和初始化 Jenkins 配置。你可以在文件 /var/lib/jenkins/secrets/initialAdminPassword 中找到该密码,使用 cat /var/lib/jenkins/secrets/initialAdminPassword 命令查看密码内容,并记录下来,在后续访问 Jenkins 网页界面时需要使用该密码进行解锁操作。

5.访问 Jenkins

  • 在浏览器中输入 http://ip:8080(将 ip 替换为实际服务器的 IP 地址),即可访问 Jenkins 网页界面。如果无法访问,可能是由于服务器防火墙的限制。

  • 若遇到访问问题,可以尝试关闭防火墙,执行命令 systemctl stop firewalld 停止防火墙服务,然后执行 systemctl disable firewalld.service 禁用防火墙开机自启。但关闭防火墙会使服务器暴露在潜在的安全风险中,因此更推荐的做法是开放 Jenkins 使用的 8080 端口,执行以下命令:

  • firewall-cmd --zone=public --add-port=8080/tcp --permanent:这会将 8080 端口添加到防火墙的公共区域,并设置为永久生效。

  • systemctl restart firewalld.service:重启防火墙服务,使端口开放设置生效。

  • 首次访问 Jenkins 网页界面时,会要求输入管理员密码进行解锁。输入之前获取的初始密码后,点击 “继续” 按钮,进入 Jenkins 插件安装页面。在这里,你可以选择安装推荐的插件,这些插件会提供常见的持续集成和持续交付功能,如 Git 集成、构建工具集成等,也可以根据自己的需求自定义选择要安装的插件。

这里的管理员密码就是/var/lib/jenkins/secrets/initialAdminPassword路径文件里存储的代码

  • 完成插件安装后,会进入创建管理员用户页面,设置用户名、密码和电子邮件地址等信息,这些信息将用于后续登录 Jenkins 管理界面。设置完成后,点击 “保存并继续” 按钮,进入 Jenkins 实例配置页面,在这里可以配置 Jenkins 的 URL 等信息,通常保持默认设置即可,点击 “保存并完成” 按钮,完成 Jenkins 的初始化配置,即可开始使用 Jenkins 进行项目的持续集成和持续交付配置。

5、安装完成

在整个安装过程中,需要注意以下几点:

  • 硬件资源配置对 Jenkins 的运行有一定影响,建议为服务器分配足够的运行内存(如 2GB 或以上)和 CPU 核心(如 2 核或以上),以确保 Jenkins 能够稳定运行,尤其是在处理复杂的构建任务和大量的项目时。
  • 确保安装的 JDK 版本为 17 以上,因为较新版本的 Jenkins 可能对 Java 版本有一定要求,低版本的 Java 可能会导致 Jenkins 启动失败或运行不稳定。

以上步骤详细地描述了在 CentOS 8 系统上安装 Jenkins 的全过程,希望对你有所帮助。如果你在安装过程中遇到任何问题,可以参考 Jenkins 官方文档、相关论坛或社区寻求进一步的支持和解决方案。


http://www.niftyadmin.cn/n/5799958.html

相关文章

python1:开发环境及配置

1,win pc本地安装: 课上选用的是清华大学开源软件镜像站 主要是python解释器,除了上面的anaconda数据科学套件, 我课上还推荐学生使用vscode或pycharm 2,如果是在linux系统服务器上: 配置就更加简单了 vs…

软件工程-【软件项目管理】--期末复习题汇总

一、单项选择题 (1)赶工一个任务时,你应该关注( C ) A. 尽可能多的任务 B. 非关键任务 C. 加速执行关键路径上的任务 D. 通过成本最低化加速执行任务 (2)下列哪个不是项目管理计划的一部分&…

【论文阅读】DynamicControl :一种新的controlnet多条件控制方法

背景 现有方法要么处理条件效率低下,要么使用固定数量的条件,这并不能完全解决多个条件的复杂性及其潜在冲突。这强调了需要创新方法来有效管理多种条件,以实现更可靠和详细的图像合成。为了解决这个问题,我们提出了一个新的框架…

Java处理视频思路

1.首先实现断点续传功能。 断点续传实现思路: 前端对文件分块。前端使用多线程一块一块上传,上传前给服务端发一个消息校验该分块是否上传,如果已上传则不再上传。如果从该断点处断网了,下次上传时,前面的分块已经存在…

流量主微信小程序工具类去水印

工具类微信小程序流量主带后台管理,可开通广告,带自有后台管理,不借助第三方接口 介绍 支持抖音,小红书,哔哩哔哩视频水印去除,功能实现不借助第三方平台。可实现微信小程序流量主广告变现功能&#xff0c…

C++之红黑树模拟实现

目录 红黑树的概念 红黑树的性质 红黑树的查找效率 红黑树的实现 红黑树的定义 红黑树节点的插入 红黑树的平衡调整 判断红黑树是否平衡 红黑树整体代码 测试代码 上期我们学习了AVL树的模拟实现,在此基础上,我们本期将学习另一个数据结构-…

推动开源数据生态:SeaTunnel ByConity技术沙龙精彩回顾

2024年12月15日,Apache SeaTunnel 和 ByConity 社区联合举办的主题为「探索数据生态协同创新」的技术沙龙在万胜广场C塔圆满落幕。 本次活动吸引了超过50位开发者、数据工程师和企业用户参与,技术交流氛围热烈,共同探讨了数据集成与仓库优化的…

【机器学习】机器学习的基本分类-半监督学习(Semi-supervised Learning)

半监督学习是一种介于监督学习和无监督学习之间的机器学习方法。它利用少量的标注数据(有监督数据)和大量的未标注数据(无监督数据)来进行模型训练,从而在标注数据不足的情况下,提升模型的性能。 半监督学习…