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

文章目录

    • 简介
      • 发展历史
      • 应用场景
    • 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.mzph.cn/news/588413.shtml

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

相关文章

mxxWechatBot微信机器人V2使用教程(图文)最全最详细

大家伙,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 先看这里 mxxWechatBot功能列表一、前言二、适用人群三、准备工作四、获取账号五、下载资料 六、安装相关软件七、启动客户端八、注入并启动微信九、机器人的基本配置十、自定义接口开发 …

医学图像分割中的频域多轴表示学习

摘要 https://arxiv.org/pdf/2312.17030v1.pdf 最近,视觉Transformer (ViT)在医学图像分割(MIS)中得到了广泛应用,这归功于其在空间域应用自注意力机制来建模全局知识。然而,许多研究都侧重于改进空间域模型&#xff…

vue-springboot基于Javaweb的二手儿童绘本网上商城交易系统设计与实现

本二手儿童绘本交易系统是为了提高用户查阅信息的效率和管理人员管理信息的工作效率,可以快速存储大量数据,还有信息检索功能,这大大的满足了用户、商家和管理员这三者的需求。操作简单易懂,合理分析各个模块的功能,尽…

苏州科技大学计算机817程序设计(java) 学习笔记

之前备考苏州科技大学计算机(专业课:817程序设计(java))。 学习Java和算法相关内容,现将笔记及资料统一整理归纳移至这里。 部分内容不太完善,欢迎提议。 目录 考情分析 考卷题型 刷题攻略…

关于求定积分的反函数的导数【认清原函数x变量和反函数x变量】

如图碰到该题该怎么解? 在纸上按①②③的顺序写出这个,其中①是最主要的 第②步和第③步就是在用反函数时要用到的逻辑思维,不是一起用的,你需要用②才去用②,你需要用③才去用③ 在纸上先写出第①步,即 其…

使用Microsoft托管密钥的Azure信息保护云退出

由于各种原因,一些组织需要一个明确定义的流程来停止使用 Azure 信息保护以及对云服务的任何依赖,而不会在采用之前失去对其数据的访问权限 - 以便在出现需要时做好准备。 Azure 信息保护 (AIP) 为使用自带密钥 (BYOK) 的客户和使用 Microsoft 托管密钥…

语义分割的应用及发展

语义分割(Semantic Segmentation)是一种计算机视觉领域的任务,旨在将一张图像中的每一个像素都分配一个语义标签,即将图像中的每个物体区域进行精确的分类划分。例如,在一张街景图中,语义分割可以将人、车、路、天空等每个像素分别…

子网划分问题(实战超详解)_主机分配地址

文章目录: 子网划分的核心思想 第一步,考虑借几位作为子网号 第二步,确定子网的网络地址 第三步,明确网络地址,广播地址,可用IP地址范围 一些可能出现的疑问 实战 题目一 子网划分的核心思想 网络号不变,借用主机号来产生新的网络 划分前的网络:网络号主机号 划分后的网络:原网…

高并发处理专题研究 - epoll并发编程[更新中]

文章目录 1 前置知识1.1 Socket编程基础Socket概述Socket通信模型Socket API一个简单的Socket编程实例 1.2 IO多路复用1.3 阻塞原理 2 epoll原理2.1 epoll概述2.2 epoll系统调用epoll_create()epoll_ctl()epoll_wait() 2.3 epoll工作原理 3 示例代码及演示 1 前置知识 1.1 Soc…

linux中用户账号和权限管理

一.Linux 用户分三类 1.普通用户 权限受限制的用户 2. 超级管理员 拥有至高无上权限 3. 程序用户 不是给人使用的,给程序用 运行程序不能使用超级管理员,从安全考虑 超级管理员 uid 为0 普通用户 1000~60000 &#xff0…

Linux系统使用yum安装MySQL

部署MySQL数据库有多种部署方式,常用的部署方式就有三种:yum安装、rpm安装以及编译安装。每一种安装方式都有自己的优势,那么企业当中通常情况下采用的是rpm和二进制安装的方式。 MySQL官网下载地址 Mysql 5.7的主要特性 更好的性能&#xf…

vue3+ts开发干货笔记

总结一下在vue3中ts的使用。当篇记录部分来自于vue官网&#xff0c;记录一下&#xff0c;算是加深印象吧。 纯干笔记&#xff0c;不断补充&#xff0c;想到什么写什么&#xff0c;水平有限&#xff0c;欢迎评论指正&#xff01; 类型标注 props <script setup lang"…

Download Monitor Email Lock下载监控器邮件锁插件

打开Download Monitor Email Lock下载监控器邮件锁插件 Download Monitor Email Lock下载监控器邮件锁插件下载监视器的电子邮件锁定扩展允许您要求用户在获得下载访问权限之前填写他们的电子邮件地址。 Download Monitor Email Lock下载监控器邮件锁插件用法 安装扩展程序后…

段永平浙江大学捐赠;合计超10亿元;OpenAI 年收超16亿美元;邻汇吧5000万元C+轮融资

投融资 • 「邻汇吧」完成5000万元C轮融资&#xff0c;安吉政府产业基金投资• 投资者预计明年黄金价格或将创新高• 至臻云完成 A 轮数千万元融资 大模型 • ChatGPT 产品增长强劲 OpenAI 年化收入超 16 亿美元• 周鸿祎&#xff1a;明年大模型一方面追求“大”&#xff0c…

【JavaScript】浮点数精度问题

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…

1.PHP简单入门

1.PHP代码执行方式 PHP是在服务器端执行&#xff0c;然后返回给用户结果。 如果直接使用浏览器打开&#xff0c;就会解析为文本。 意思是说&#xff0c;浏览器通过 http请求&#xff0c;才能够执行php页面。 2.PHP代码框架 开启本机服务器&#xff08;下载软件略&#xff09…

.NET进阶篇06-async异步、thread多线程2

知识须要不断积累、总结和沉淀&#xff0c;思考和写做是成长的催化剂web 内容目录 1、线程Thread 一、生命周期 二、后台线程 三、静态方法 1.线程本地存储 2.内存栅栏 四、返回值 2、线程池ThreadPool 一、工做队列 二、工做线程和IO线程 三、和Thread区别 四、定时器 1、线…

二叉树的后序遍历,力扣

目录 建议先刷一下中序遍历 题目地址&#xff1a; 题目&#xff1a; 我们直接看题解吧&#xff1a; 解题方法&#xff1a; 注&#xff1a; 解题分析&#xff1a; 解题思路&#xff1a; 代码实现&#xff1a; 代码实现&#xff08;递归&#xff09;&#xff1a; 代码实现&#x…

LINUX 抓包工具Tcpdump离线安装教程

本次教程基于内网环境无法访问网络使用安装包进行安装抓包工具 1、首先给大家看下一共有6个安装包&#xff0c;依次进行解压&#xff0c;包我就放到csdn上了&#xff0c;需要的可以联系我进行下载 2打包然后传到服务器任意一个目录下&#xff0c;进入到当前目录&#xff0c;然后…

React快速入门之交互性

响应事件 创建事件处理函数 处理函数名常以handle事件名命名 function handlePlayClick() {alert(Playing);}传递事件处理函数 函数名、匿名两种方式&#xff01; function PlayButton() {function handlePlayClick() {alert(Playing);}return (<Button handleClick{handl…