自动化部署工具 Jenkins 的安装与配置

news/2025/9/17 16:04:41/文章来源:https://www.cnblogs.com/wsispnet/p/19096965

a557526312496c158a625ccbf57f961e

Jenkins 是一个开源的自动化部署工具,广泛用于持续集成(CI)和持续交付(CD)流程。它支持自动化构建、测试和部署应用程序。以下是 Jenkins 的安装与配置的详细教程。


1. 安装 Jenkins

以下步骤适用于 Linux 系统(以 Ubuntu 和 CentOS 为例),并包含安装必要的依赖环境。


1.1 安装 Jenkins 的前置条件

(1) 安装 Java

Jenkins 需要 Java 环境,推荐使用 Java 11 或更高版本。

Ubuntu/Debian 系统:

bash
 
sudo apt update
sudo apt install openjdk-11-jdk -y
java -version

CentOS/RHEL 系统:

bash
 
sudo yum update
sudo yum install java-11-openjdk -y
java -version

确保 Java 安装成功,执行 java -version 确认版本。


1.2 添加 Jenkins 仓库并安装

(1) 在 Ubuntu/Debian 系统上安装 Jenkins

  1. 添加 Jenkins 官方仓库:

    bash
     
    curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
    echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
  2. 更新包列表并安装 Jenkins:

    bash
     
    sudo apt update
    sudo apt install jenkins -y

(2) 在 CentOS/RHEL 系统上安装 Jenkins

  1. 添加 Jenkins 官方仓库:

    bash
     
    sudo yum install -y wget
    wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
    rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
  2. 安装 Jenkins 和依赖:

    bash
     
    sudo yum install jenkins -y

1.3 启动 Jenkins 服务

启动 Jenkins 并设置开机自启:

Ubuntu/Debian 系统:

bash
 
sudo systemctl start jenkins
sudo systemctl enable jenkins

CentOS/RHEL 系统:

bash
 
sudo systemctl start jenkins
sudo systemctl enable jenkins

检查 Jenkins 的运行状态:

bash
 
sudo systemctl status jenkins

1.4 配置防火墙(可选)

如果服务器启用了防火墙,需要开放 Jenkins 默认端口 8080

Ubuntu/Debian 系统:

bash
 
sudo ufw allow 8080
sudo ufw reload

CentOS/RHEL 系统:

bash
 
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

2. 初始配置 Jenkins

2.1 访问 Jenkins

  1. 打开浏览器,访问 Jenkins:

     
     
    http://<服务器IP>:8080

    如果是在本地安装,则访问:

     
     
    http://localhost:8080
  2. 进入 Jenkins 解锁页面,系统会提示输入初始管理员密码。


2.2 获取初始管理员密码

  1. 在终端中查看初始密码:

    bash
     
    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  2. 将输出的密码复制到浏览器页面,点击 Continue


2.3 安装推荐插件

  1. 在插件安装页面,选择 Install suggested plugins(安装推荐插件)。
  2. 等待插件安装完成(可能需要几分钟)。

2.4 创建管理员账户

  1. 输入管理员用户名、密码和邮箱地址。
  2. 点击 Save and Continue 保存。

2.5 配置实例 URL

  1. 设置 Jenkins 的访问 URL(如 http://<服务器IP>:8080)。
  2. 点击 Save and Finish 完成配置。

3. 配置 Jenkins

3.1 配置全局工具

Jenkins 支持集成多种开发工具(如 Git、Maven、Gradle 等),需要初始化配置。

  1. 进入全局工具配置页面

    • 在 Jenkins 主页面,点击 Manage Jenkins > Global Tool Configuration
  2. 常见工具配置

    • Git
      • 点击 Git > Add Git
      • 指定 Git 可执行文件路径(如 /usr/bin/git)。
    • Maven(可选):
      • 如果需要构建 Java 项目,点击 Maven > Add Maven
      • 填写 Maven 名称(如 Maven3),并选择自动安装。
    • JDK
      • Jenkins 会自动检测 Java 环境。

3.2 配置凭据

Jenkins 使用凭据来安全地存储访问代码仓库(如 GitHub、GitLab)的认证信息。

  1. 添加凭据

    • 在 Jenkins 主页面,点击 Manage Jenkins > Manage Credentials
    • 点击 (global) > Add Credentials
    • 选择凭据类型:
      • 用户名和密码:用于私有仓库的访问。
      • SSH 密钥:用于通过 SSH 访问 Git 仓库。
    • 保存信息。
  2. 使用凭据

    • 在创建 Jenkins 项目时,选择刚添加的凭据。

3.3 配置邮件通知

  1. 在 Jenkins 主页面,点击 Manage Jenkins > Configure System
  2. 找到 E-mail Notification 设置:
    • 输入 SMTP 服务器地址(如 smtp.gmail.com)。
    • 配置发送邮箱和认证信息。
  3. 测试邮件通知功能。

4. 创建 Jenkins 项目

4.1 创建自由风格项目

  1. 点击 New Item 创建新项目。

  2. 输入项目名称,选择 Freestyle project,点击 OK

  3. 配置项目:

    • 源码管理
      • 选择 Git,填写代码仓库地址。
      • 添加凭据(如果是私有仓库)。
    • 构建触发器
      • 配置触发条件(如定时触发、代码变更触发)。
    • 构建步骤
      • 添加构建步骤(如执行 Shell 脚本、调用 Maven 构建)。
    • 构建后操作
      • 配置构建结果通知或发布操作。
  4. 保存配置,点击 Build Now 开始构建。


4.2 配置流水线项目(Pipeline)

  1. 点击 New Item,选择 Pipeline
  2. Pipeline 配置中,使用脚本定义流水线:
    groovy
     
    pipeline {agent anystages {stage('Build') {steps {echo 'Building...'}}stage('Test') {steps {echo 'Testing...'}}stage('Deploy') {steps {echo 'Deploying...'}}}
    }
  3. 保存后运行流水线。

5. 常见问题与解决方法

5.1 无法访问 Jenkins

  • 检查 Jenkins 服务状态:
    bash
     
    sudo systemctl status jenkins
  • 确保防火墙开放了端口 8080

5.2 插件安装失败

  • 检查网络连接是否正常。
  • 手动更新插件源:
    • Manage Jenkins > Plugin Manager 中,切换到其他插件镜像(如 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/)。

5.3 构建失败

  • 检查 Jenkins 是否安装了所需工具(如 Maven、Git)。
  • 查看控制台输出日志,定位错误原因。

6. 总结

通过以上步骤,您可以成功安装和配置 Jenkins,并创建自动化构建和部署任务。以下是关键点总结:

  1. 安装 Jenkins 和配置 Java 环境
  2. 初始化 Jenkins:安装推荐插件、创建管理员账户、配置全局工具。
  3. 创建项目:支持自由风格项目和流水线项目。
  4. 集成工具:如 Git、Maven 和邮件通知。

Jenkins 的强大功能可以大幅提高软件开发和部署的效率,适用于个人开发者和企业级项目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/906668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pip 搭建源

搭建本地pip源主要可通过pypiserver、pip2pi或bandersnatch等工具实现,具体步骤如下: 工具选择与安装‌pypiserver‌:轻量级方案,适合快速搭建小型私有源,通过pip install pypiserver安装 ‌pip2pi‌:适合按需构建源,从requirements.txt生成索引,需配合pip install pip…

qoj10093 Jump the Frog

题意 给出 \(n\) 个由 O 和 ~ 组成的字符串 \(s_i\),还有 \(m\) 个额外字符串,第 \(n+i\) 个字符串 \(s_{n+i}\) 由第 \(s_x\) 和 \(s_y\) \((x,y<n+i)\) 个字符串拼接得到,即 \(s_{n+i}=s_x+s_y\)。你需要对这 \(n+m\) 个字符串解决以下问题: 有一只青蛙从字符串的起点…

new 和make

func NewCase() {// 通过new , 可以创建任意类型,并返回指针mpPtr := new(map[string]*user)if *mpPtr == nil { // 通过 * 获取指针内容fmt.Println("map 为空")}// sliceslicePtr := new([]user)if *slicePtr == nil {fmt.Println("slice 为空")}*sliceP…

微信商户绑定微信公众号、小程序

https://pay.weixin.qq.com/index.php/extend/merchant_appid/mapay_platform/account_manage版权木有,侵权不究,欢迎转载

Ceres 常用 LossFunction 对比

Ceres 常用 LossFunction 对比

测试开发全日制学徒班火热报名中|跟着名企大咖做真实项目,结业即上岗

测试开发全日制学徒班,采用系统化教学的全日制线下课程,通过「人工智能测试+自动化测试+Python开发+测试开发」四维能力培养体系,配备行业资深专家导师陪跑服务(私教1v1答疑+周末私教陪跑服务),全程采用企业级学徒制培养模式。 学员将参与真实企业级项目开发,完成测试全…

唯创知音AI语音交互芯片与模组介绍

AI语音交互已经成为智能产品的基础配置,比如常见的AI玩具、智能家居、带AI功能的蓝牙音响,还有汽车的智能车机和智能穿戴设备等。唯创知音顺应市场趋势推出了WT2606A系列的AI语音交互芯片,和WT3000A M06、WT3000A M07、WT3000A M08三款AI语音交互模组。WT2606A AI语音交互芯…

k3s 高可用集群部署(内置 etcd + VIP + keepalived)

k3s 高可用集群部署(内置 etcd + VIP + keepalived) 一、节点规划master 节点:10.0.0.40、10.0.0.51、10.0.0.53 worker 节点:10.0.0.52、10.0.0.54 VIP(高可用入口):10.0.0.41二、离线包准备下载 k3s 安装脚本、二进制、镜像包 导入镜像到本地或 Harbor 打包所有安装文…

问HashMap底层原理?

HashMap是基于数组+链表+红黑树的哈希表。用于存储键值对。 1.哈希计算和扰动处理,也就是Hash方法 每一个Object都有一个 .hashCode 方法。(哈希计算)在对hashmap进行插入和查询时,先调用key键的key.hashCode()方法获取一个未处理的int哈希值,在底层代码中该值被复制给变量…

用 Go 重写 adbkit:原理、架构与搭建实践

用 Go 重写 adbkit:原理、架构与搭建实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !impor…

C语言环境搭建之Linux子系统使用vscode连接子系统

安装准备工作查看当前系统版本确保高于16215.0开启WSL Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。安装步骤微软商城Microsoft Store安装Ubuntu(本人安装的版本是22.04)点击等待安装完成输入用户名跟…

移远AT指令笔记

# 测试 AT - 测试AT指令功能是否正常# 模块相关 ATI - 查询模块信息 AT+CGMI - 查询模块制造商标识 AT+CGMM - 查询模块型号 AT+CGMR - 查询模块固件版本号# 网络相关 AT+QCCID - 查询集成电路卡识别码(ICCID) AT+GSN …

Chromium历史版本下载方式

首先,访问 https://chromiumdash.appspot.com/branches此链接,点击将要下载的chromium版本。我们点击想要下载的版本的Chromium列,这里我们以137为例。点击此处。会打开https://chromium.googlesource.com/chromium/src.git/+log/refs/branch-heads/7151网页。点击上图红框处…

【ACM出版】第三届物联网与云计算技术国际学术会议 (IoTCCT 2025)

第三届物联网与云计算技术国际学术会议(IoTCCT 2025)将于‌2025年9月26-28日‌在中国海口市盛大召开!【ACM独立出版 | 往届会后四个月EI检索! 】 【IEEE Fellow助力,行业内精彩报告!】 第三届物联网与云计算技术国际学术会议 (IoTCCT 2025) 2025 3rd International Confe…

2025年最全 Wiki 管理工具测评:ONES、Confluence、Notion......哪个更适合你?

随着技术和团队规模的不断发展,如何有效管理知识、文档和任务,成为了研发团队面临的重要挑战。Gartner 发布的《Top Strategic Predictions for 2024 and Beyond》报告指出,成功的研发领导者应该采用新的方法,构建数字化的研发生态系统,利用技术工具创造一个高绩效的研发环…

天下拍拍卖系统:二方系统也能扩展三方平台功能

过去很多年,大多数拍卖公司为了快速开展线上拍卖会,普遍选择入驻阿里拍卖、京东拍卖、公拍网等三方平台——功能齐全、流量大、上线快。但随着业务深入,企业逐渐发现三方平台存在一些限制,想要私有化搭建一套属于拍卖公司自己的拍卖系统,但同时可能也想保留一些三方平台的…

express使用redis

我用的pnpm pnpm add express redisconst express = require(express); const redis = require(redis); var app = express() var port = 3000 // 创建 Redis 客户端实例 const redisClient = redis.createClient({url: redis://172.17.0.185:6379 ,password: b7371d927aec647d…

day07 课程

day07 课程课程:https://www.bilibili.com/video/BV1o4411M71o?spm_id_from=333.788.videopod.episodes&p=148 7.1 字典的应用场景7.2 创建字典的语法7.3 字典常用操作之新增7.4 字典常用操作之删除7.5 字典常用操作之修改———————————————————————…

排序实现java - 教程

排序实现java - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 14p…