Jenkins 系列:Jenkins 安装(Windows、Mac、Centos)和简介

news2025/1/24 2:22:18

文章目录

    • 简介
      • 发展历史
      • 应用场景
    • Jenkins 安装部署
      • 先决条件
      • 硬件要求
      • 软件包下载
      • war 包部署
      • linux 系统部署
      • mac 系统部署
      • windows 系统部署
      • 安装后基本配置
        • 解锁
        • 自定义 jenkins 插件
        • 创建用户
        • 配置更新站点
      • 配置文件

简介

Jenkins前身是 Hudson,使用 java 语言开发的自动化发布工具。在中大型金融等企业中普遍使用 Jenkins 来作为项目发布工具。 Jenkins 官方提供的插件使 Jenkins 更为强大。Jenkins 是一个自动化服务器,目前发展超过 15 年,比较成熟的 CI 工具(也可以 CD)能够实现自动化集成发布。建立好流水线后,期间无需专业运维人员介入,开发人员随时发布部署

image

发展历史

Jenkins 的前身是 Hudson,采用 JAVA 编写的持续集成开源工具。

Hudson 由 Sun 公司在 2004 年启动,第一个版本于 2005 年在 java.net 发布。

2007 年开始 Hudson 逐渐取代 CruiseControl 和其他的开源构建工具的江湖地位。

在 2008 年的 JavaOne 大会上在开发者解决方案中获得杜克选择大奖(Duke’s Choice Award)。

在 2010 年 11 月期间,因为 Oracle 对 Sun 的收购带来了 Hudson 的所有权问题。主要的项目贡献者和 Oracle 之间, 尽管达成了很多协议,但有个关键问题就是商标名称“Hudson”。

甲骨文在 2010 年 12 月声明拥有该名称并申请商标的权利。因此,2011 年 1 月 11 日,有人要求投票将项目名称从“Hudson”改为“Jenkins”。

2011 年 1 月 29 日,该建议得到社区投票的批准,创建了 Jenkins 项目。

2011 年 2 月 1 日,甲骨文表示,他们打算继续开发 Hudson,并认为 Jenkins 只是一个分支,而不是重命名。因此,Jenkins 和 Hudson 继续作为两个独立的项目,每个都认为对方是自己的分支。

到 2013 年 12 月,GitHub 上的 Jenkins 拥有 567 个项目成员和约 1,100 个公共仓库,与此相对的 Hudson 有 32 个项目成员和 17 个公共仓库。到现在两者的差异更多,应该说 Jenkins 已经全面超越了 Hudson。此外,大家可能是出于讨厌 Oracle 的情绪,作为 Java 开发者天然地应该支持和使用 Jenkins。

应用场景

集成 svn/git 客户端实现源代码下载检出

集成 maven/ant/gradle/npm 等构建工具实现源码编译打包单元测试

集成 sonarqube 对源代码进行质量检查(坏味道、复杂度、新增 bug 等)

集成 SaltStack/Ansible 实现自动化部署发布

集成 Jmeter/Soar/Kubernetes/……

可以自定义插件或者脚本通过 jenkins 传参运行

可以说 Jenkins 比较灵活插件资源丰富,日常运维工作都可以自动化。

image

Jenkins 安装部署

先决条件

Java8 无论是 Java 运行时环境(JRE)还是 Java 开发工具包(JDK)都可以。

硬件要求

最低配置: 256MB 可用内存,1GB 可用磁盘空间(Docker 推荐 10GB)。

小团队配置: 1GB+可用内存, 50GB+可用磁盘空间。

软件包下载

最新 war 包

最新 pkg 包

最新 exe 包

最新 rpm 包

war 包部署

Jenkins 的 web 应用程序 archive(war)包是可以在任何支持 Java 的操作系统上运行。

将下载的 war 包放到 jenkins 的目录中(可以自定义)。

运行命令 java -jar jenkins.war启动。

此时可以看到 Jenkins 的启动日志,查看是否有异常。

通过浏览器访问http://localhost:8080

注意:可以通过 –httpPort 方式指定端口, java -jar jenkins.war -httpPort=9090。

linux 系统部署

首先下载 rpm 软件包,安装rpm –ivh jenkins-2.150.3-1.1.noarch.rpm

systemctl start jenkins #启动服务

systemctl enable jenkins #开机自启

#!/bin/bash
#jdk must be installed before jenkins can be installed.

#创建jenkins rpm下载目录
mkdir -p /usr/local/src/jenkins
#进入jinkins rpm包目录
cd /usr/local/src/jenkins
#下载 jenkins rpm 包
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.263.1-1.1.noarch.rpm
#安装 rpm 包
rpm -ivh jenkins-2.263.1-1.1.noarch.rpm
#移动到 local目录下
mv /var/lib/jenkins /usr/local/jenkins
#启动jenkins
systemctl start jenkins
#设置开机启动
systemctl enable jenkins

mac 系统部署

brew install jenkins 安装 jenkins 最新版本

brew install jenkins-lts 安装 jenkinsLTS 版本

windows 系统部署

下载软件包通过向导安装即可。

安装后基本配置

解锁

当您第一次访问 Jenkins 的时候,系统会要求您使用自动生成的密码对其进行解锁。解锁秘钥可以通过$JENKINS_HOME/secrets/initialAdminPassword 文件获取。还可以通过在启动日志中获取。

image

image

自定义 jenkins 插件

解锁 Jenkins 之后再自定义 Jenkins 页面,您可以安装任何数量的插件作为初始化的一部分。

分别是安装建议的插件和选择要安装的插件(如果不确定要安装那些的时候可以选择此选项,灵活的自定义安装)。

插件安装多了也没关系,可以后面再 jenkins 插件管理页面删除哦(会很繁琐)。

image

创建用户

在这里创建一个管理员账号,到此 jenkins 的初始化配置已完成。

image

配置更新站点

当改完后,其实还是很慢 🤷‍♀️ 建议配置 nginx 做域名代理 😜

由于使用官方的站点速度相对很慢,这里采用清华大学的 jenkins 更新站点。

image

配置文件

以 rpm 方式部署的配置文件在/etc/sysconfig/jenkins,可以定义 Jenkins 启动参数和端口。

jenkins 脚本存放目录:/etc/rc.d/init.d

grep -v ^$ /etc/sysconfig/jenkins | grep -v ^#

image

## Path:        Development/Jenkins
## Description: Jenkins Automation Server
## Type:        string
## Default:     "/var/lib/jenkins"
## ServiceRestart: jenkins
#
# Directory where Jenkins store its configuration and working
# files (checkouts, build reports, artifacts, ...).
#
JENKINS_HOME="/var/lib/jenkins"

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Java executable to run Jenkins
# When left empty, we'll try to find the suitable Java.
#
JENKINS_JAVA_CMD="/usr/local/jdk/bin/java"

## Type:        string
## Default:     "jenkins"
## ServiceRestart: jenkins
#
# Unix user account that runs the Jenkins daemon
# Be careful when you change this, as you need to update
# permissions of $JENKINS_HOME and /var/log/jenkins.
#
JENKINS_USER="jenkins"

## Type:        string
## Default: "false"
## ServiceRestart: jenkins
#
# Whether to skip potentially long-running chown at the
# $JENKINS_HOME location. Do not enable this, "true", unless
# you know what you're doing. See JENKINS-23273.
#
#JENKINS_INSTALL_SKIP_CHOWN="false"

## Type: string
## Default:     "-Djava.awt.headless=true"
## ServiceRestart: jenkins
#
# Options to pass to java when running Jenkins.
#
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"

## Type:        integer(0:65535)
## Default:     8080
## ServiceRestart: jenkins
#
# Port Jenkins is listening on.
# Set to -1 to disable
#
JENKINS_PORT="8080"

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# IP address Jenkins listens on for HTTP requests.
# Default is all interfaces (0.0.0.0).
#
JENKINS_LISTEN_ADDRESS=""

## Type:        integer(0:65535)
## Default:     ""
## ServiceRestart: jenkins
#
# HTTPS port Jenkins is listening on.
# Default is disabled.
#
JENKINS_HTTPS_PORT=""

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Path to the keystore in JKS format (as created by the JDK 'keytool').
# Default is disabled.
#
JENKINS_HTTPS_KEYSTORE=""

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Password to access the keystore defined in JENKINS_HTTPS_KEYSTORE.
# Default is disabled.
#
JENKINS_HTTPS_KEYSTORE_PASSWORD=""

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# IP address Jenkins listens on for HTTPS requests.
# Default is disabled.
#
JENKINS_HTTPS_LISTEN_ADDRESS=""

## Type:        integer(0:65535)
## Default:     ""
## ServiceRestart: jenkins
#
# HTTP2 port Jenkins is listening on.
# Default is disabled.
#
# Notice: HTTP2 support may require additional configuration, see Winstone
# documentation for more information.
#
JENKINS_HTTP2_PORT=""

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# IP address Jenkins listens on for HTTP2 requests.
# Default is disabled.
#
# Notice: HTTP2 support may require additional configuration, see Winstone
# documentation for more information.
#
JENKINS_HTTP2_LISTEN_ADDRESS=""

## Type:        integer(1:9)
## Default:     5
## ServiceRestart: jenkins
#
# Debug level for logs -- the higher the value, the more verbose.
# 5 is INFO.
#
JENKINS_DEBUG_LEVEL="5"

## Type:        yesno
## Default:     no
## ServiceRestart: jenkins
#
# Whether to enable access logging or not.
#
JENKINS_ENABLE_ACCESS_LOG="no"

## Type:        integer
## Default:     100
## ServiceRestart: jenkins
#
# Maximum number of HTTP worker threads.
#
JENKINS_HANDLER_MAX="100"

## Type:        integer
## Default:     20
## ServiceRestart: jenkins
#
# Maximum number of idle HTTP worker threads.
#
JENKINS_HANDLER_IDLE="20"

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Folder for additional jar files to add to the Jetty class loader.
# See Winstone documentation for more information.
# Default is disabled.
#
JENKINS_EXTRA_LIB_FOLDER=""

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Pass arbitrary arguments to Jenkins.
# Full option list: java -jar jenkins.war --help
#
JENKINS_ARGS=""

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

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

相关文章

基于SpringBoot实现的前后端分离电影评分项目,功能:注册登录、浏览影片、热门影片、搜索、评分、片单、聊天、动态

一、项目介绍 本项目主要基于SpringBoot、Mybatis-plus、MySQL、Redis实现的影片评分项目。 本系统是前后端分离的,分别由三个子项目构成:java服务端、用户前端、管理员管理前端 关键词:springboot java vue mysql reids websocket 毕业设计…

【Leetcode】1154. 一年中的第几天

文章目录 题目思路代码 题目 1154. 一年中的第几天链接 思路 题目要求是给定一个字符串 date,它代表一个日期,采用标准的 YYYY-MM-DD 格式。需要计算这个日期是当年的第几天。 首先,我们可以通过字符串的索引来提取年、月和日的数值&…

python的pywebio库给孩子做加减法数学题

效果展示 程序执行后,打开浏览器,展示一些100以内的加减法混合运算的数学题并输入答案后判断对错,这样倒是省了买教材的钱了。 在题目下方的框中,输入答案,然后点击提交后, 会输出结果 pywebio库介绍 安装…

Resnet BatchNormalization 迁移学习

时间:2015 网络中的亮点: 超深的网络结构(突破1000层)提出residual模块使用Batch Normalization加速训练(丢弃dropout) 层数越深效果越好? 是什么样的原因导致更深的网络导致的训练效果更差呢…

计算机组成原理复习7

内存管理 文章目录 内存管理存储器概述存储器的分类按在计算机中的作用(层次)分类按存储介质分类按存取方式分类按信息的可保存性分类 存储器的性能指标存储容量单位成本存储速度:数据传输率数据的宽度/存储周期 存储器的层次化结构多级存储系…

【实用工具】vim常用命令

快速移动(上下左右箭头可替代) 左移 h 右移 l 下移 j 上移 K在本行操作 0 移动到本行行首 ^ 移动到本行的第一个不是 blank 字符 $ 移动到本行行尾 w 光标移动到下一个单词的开头 e 光标移动到下一个单词的结尾跨行移动光标 nG 光标定位到第n行的行首 gg 光标定位到第一行的…

SPI机制原理+使用

一、概述 SPI全称(Service Provider Interface),是JDK内置的一种服务提供发现机制;SPI机制提供了组件发现和注册方式,可以为应用程序提供灵活的插件机制, 主要原理:接口 反射 配置文件。 二、…

Visual Studio 2015 中 SDL2 开发环境的搭建

Visual Studio 2015 中 SDL2 开发环境的搭建 Visual Studio 2015 中 SDL2 开发环境的搭建新建控制台工程拷贝并配置 SDL2 开发文件拷贝 SDL2 开发文件配置 SDL2 开发文件 测试SDL2 开发文件的下载链接 Visual Studio 2015 中 SDL2 开发环境的搭建 新建控制台工程 新建 Win32 …

学习使用echats实现双刻度echarts双Y轴,左右Y轴数据的方法

学习使用echats实现双刻度echarts双Y轴&#xff0c;左右Y轴数据的方法 代码效果图 代码 <!--此示例下载自 https://echarts.apache.org/examples/zh/editor.html?cline-stack&langjs --> <!DOCTYPE html> <html lang"en" style"height: 10…

工业机器人与计算机技术:驱动现代工业变革

工业机器人与计算机技术&#xff1a;驱动现代工业变革 随着科技的飞速发展&#xff0c;工业机器人与计算机技术已经成为现代工业制造的核心驱动力。这两者之间的联系日益紧密&#xff0c;共同推动着工业生产的自动化、智能化和高效化。 一、工业机器人&#xff1a;从机械手臂…

以太坊代币标准解读及相关Dapp的搭建

文章目录 什么是以太坊代币标准1、什么是以太坊2、以太坊代币标准 同质化代币 Dapp 搭建1、MetaMask 的安装2、Ganache 的安装3、实现 ERC-20 代币协议4、前端页面的编写5、部署流程及操作演示 什么是以太坊代币标准 1、什么是以太坊 以太坊&#xff08;Ethereum&#xff09;是…

Linux环境grep搜索方法记录

1 grep grep 命令&#xff0c;用来搜索字符串所在位置&#xff0c;可以具体到不同文件&#xff0c;不同行&#xff1b; 在Linux 下&#xff0c;查看命令释义如下 zhaocubuntu2004:~$ grep --help Usage: grep [OPTION]... PATTERNS [FILE]... Search for PATTERNS in each FI…

安装Hadoop:Hadoop的单机模式、伪分布式模式——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项

前言 Hadoop包括三种安装模式&#xff1a; 单机模式&#xff1a;只在一台机器上运行&#xff0c;存储是采用本地文件系统&#xff0c;没有采用分布式文件系统HDFS&#xff1b;伪分布式模式&#xff1a;存储采用分布式文件系统HDFS&#xff0c;但是&#xff0c;HDFS的名称节点…

【VRTK】【VR开发】【Unity】18-VRTK与Unity UI控制的融合使用

课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【背景】 VRTK和Unity自身的UI控制包可以配合使用发挥效果。本篇就讨论这方面的实战内容。 之前可以互动的立体UI并不是传统的2D UI对象,在实际使用中…

Mac 安装 Minikube 及解决 “[ERROR ImagePull]: failed to pull image“ 问题

文章目录 1. 引言2. Mac 安装 Docker3. Mac 安装 Minikube4. 拉起集群4.1 启动4.2 验证 5. 参考 1. 引言 Minikube 是一种轻量化的 Kubernetes 集群&#xff0c;旨在帮助开发者和学习者更好地学习和体验 Kubernetes 的功能。它可以在个人计算机的虚拟化环境中快速构建和启动 Ku…

网易有道词典不能截屏翻译,不能联网解决办法

对应版本&#xff1a; win10系统&#xff0c;联想拯救者笔记本&#xff0c;网易有道词典8.10.2.0。 网易有道词典免费下载链接&#xff1a;https://download.csdn.net/download/qq_42755734/88684985 修改代理&#xff1a; youdao.com 0 取消勾选---不更新 效果&#xff1a…

移动应用开发:揭秘内侧APP封装台的高效

在数字化浪席卷下&#xff0c;移应用已经成连接企业与用户纽带。为了抢占市场先机&#xff0c;快速发布高质量的移动应用成为业竞争的关键。侧APP封装平因此而诞生&#xff0c;成为了应开发者的得助手。以下是内侧APP封装台的全面解读&#xff0c;助在应用开发海洋中乘风破浪。…

告别HTTP,拥抱HTTPS!免费SSL证书领取指南

为什么选择HTTPS&#xff1f; HTTP和HTTPS之间的主要区别在于安全性。HTTP是一种不安全的协议&#xff0c;数据在传输过程中是明文的&#xff0c;容易受到中间人攻击。而HTTPS通过SSL&#xff08;Secure Sockets Layer&#xff09;或TLS&#xff08;Transport Layer Security&…

python期刊稿件在线投稿系统q2ud0

本系统的用户可分为管理员、投稿者、审稿人和编辑四个用户角色组成。管理员可以管理系统内所有功能&#xff0c;主要有个人中心、投稿者管理、审稿人管理、编辑管理、个人稿件管理、审核稿件管理、稿件信息管理、类型管理等功能&#xff1b;编辑登录系统主要有个人中心、审核稿…

2023-12-22 LeetCode每日一题(得到山形数组的最少删除次数)

2023-12-22每日一题 一、题目编号 1671. 得到山形数组的最少删除次数二、题目链接 点击跳转到题目位置 三、题目描述 我们定义 arr 是 山形数组 当且仅当它满足&#xff1a; arr.length > 3存在某个下标 i &#xff08;从 0 开始&#xff09; 满足 0 < i < arr.…