Jenkins 系列:Jenkins 安装(Windows、Mac、Centos)和简介
简介
Jenkins前身是 Hudson,使用 java 语言开发的自动化发布工具。在中大型金融等企业中普遍使用 Jenkins 来作为项目发布工具。 Jenkins 官方提供的插件使 Jenkins 更为强大。Jenkins 是一个自动化服务器,目前发展超过 15 年,比较成熟的 CI 工具(也可以 CD)能够实现自动化集成发布。建立好流水线后,期间无需专业运维人员介入,开发人员随时发布部署
发展历史
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 比较灵活插件资源丰富,日常运维工作都可以自动化。
Jenkins 安装部署
先决条件
Java8 无论是 Java 运行时环境(JRE)还是 Java 开发工具包(JDK)都可以。
硬件要求
最低配置: 256MB 可用内存,1GB 可用磁盘空间(Docker 推荐 10GB)。
小团队配置: 1GB+可用内存, 50GB+可用磁盘空间。
软件包下载
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
#建立软链接 vim/etc/jenkins
ln -s /usr/local/jdk/bin/java /usr/bin/java
#移动到 local目录下
mv /var/lib/jenkins /usr/local/jenkins
#启动jenkins
systemctl start jenkins
#设置开机启动
systemctl enable jenkins
:<<BLOCK
JENKINS_SOURCE_PATH='/opt/jenkins'
JAVA_PATH='/usr/local/jdk/bin/java'
JENKINS_SOURCE_NAME='jenkins-2.263.1-1.1.noarch.rpm'
JENKINS_DOWNLOAD_PATH='https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/'$JENKINS_SOURCE_NAME''
mkdir -p $JENKINS_SOURCE_PATH
cd $JENKINS_SOURCE_PATH
wget $JENKINS_DOWNLOAD_PATH
rpm -ivh $JENKINS_SOURCE_NAME
ln -s $JAVA_PATH /usr/bin/java
mv /var/lib/jenkins /usr/local/jenkins
systemctl start jenkins
systemctl status jenkins
systemctl enable jenkins
BLOCK
mac 系统部署
brew install jenkins
安装 jenkins 最新版本
brew install jenkins-lts
安装 jenkinsLTS 版本
windows 系统部署
下载软件包通过向导安装即可。
安装后基本配置
解锁
当您第一次访问 Jenkins 的时候,系统会要求您使用自动生成的密码对其进行解锁。解锁秘钥可以通过$JENKINS_HOME/secrets/initialAdminPassword 文件获取。还可以通过在启动日志中获取。
自定义 jenkins 插件
解锁 Jenkins 之后再自定义 Jenkins 页面,您可以安装任何数量的插件作为初始化的一部分。
分别是安装建议的插件和选择要安装的插件(如果不确定要安装那些的时候可以选择此选项,灵活的自定义安装)。
插件安装多了也没关系,可以后面再 jenkins 插件管理页面删除哦(会很繁琐)。
创建用户
在这里创建一个管理员账号,到此 jenkins 的初始化配置已完成。
配置更新站点
当改完后,其实还是很慢 ♀️ 建议配置 nginx 做域名代理
由于使用官方的站点速度相对很慢,这里采用清华大学的 jenkins 更新站点。
配置文件
以 rpm 方式部署的配置文件在/etc/sysconfig/jenkins
,可以定义 Jenkins 启动参数和端口。
jenkins 脚本存放目录:/etc/rc.d/init.d
grep -v ^$ /etc/sysconfig/jenkins | grep -v ^#
## 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=""
Jenkins 系列:Jenkins 安装(Windows、Mac、Centos)和简介的更多相关文章
- Jenkins系列-Jenkins介绍与部署
Jenkins是什么? Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测 ...
- Jenkins系列-Jenkins忘记密码的修复方法
找回 admin 用户的密码后,可以登录系统修改其他用户的密码. 1. Jenkins 目录结构 Jenkins 没有使用数据库,所有的信息都保存在 JENKINS_HOME 目录下的文件中.其中 J ...
- Jenkins系列-Jenkins插件备份
Jenkins管理插件 为了让所有的插件在 Jenkins 内可用,所有插件的列表可以访问链接 − https://wiki.jenkins-ci.org/display/JENKINS/Plugin ...
- Jenkins系列-Jenkins升级、迁移和备份
升级Jenkins Jenkins的开发迭代非常快,每周发布一个开发版本,长期支持版每半年更新一次(ps:大版本更新).如此频繁的更新,怎么升级呢? war:下载新版的war文件,替换旧版本war文件 ...
- 安装Windows与CentOS双系统
1.安装Windows系统 安装过程除了分区时要预留出部分空间来安装CentOS之外,其它操作与正常安装一样. 2.安装CentOS系统 使用光盘引导安装,因安装为服务器版,建议选择无界面,最小化安装 ...
- 升级到php7和安装拓展(mac centos)
Mac升级到php7 使用homebrew安装php7 brew update #更新源 brew search php #查找源中的php,发现有php7.1版本,安装最新的php7.1 brew ...
- Jenkins系列-Jenkins邮件通知
一.安装邮件插件 由于Jenkins自带的邮件功能比较鸡肋,因此这里推荐安装专门的邮件插件,不过下面也会顺带介绍如何配置Jenkins自带的邮件功能作用. 可以通过系统管理→管理插件→可选插件,选择E ...
- Jenkins系列-Jenkins修改主目录步骤说明
在使用Jenkins做持续集成过程中,在构建很多次后发现有时在构建的时候系统提示磁盘空间不足,此时检查发现Jenkins的主目录挂载区放在了服务器根目录下,占用空间较大,此时除了对服务器的磁盘进行扩容 ...
- Jenkins系列-Jenkins用户权限和角色配置
由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,这边将使用Role Strategy Plugin,介绍页面:https://wiki.jenki ...
- Jenkins系列-Jenkins通过Publish over SSH插件实现远程部署
配置ssh免秘钥登录 安装Publish over SSH插件 插件使用官网:https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plug ...
随机推荐
- 5.2 磁盘CRC32完整性检测
CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏.通过运用本校验技术我们可以实现对特定内存区域以及磁 ...
- JDK8升级JDK11最全实践干货来了
1.前言 截至目前(2023年),Java8发布至今已有9年,2018年9月25日,Oracle发布了Java11,这是Java8之后的首个LTS版本.那么从JDK8到JDK11,到底带来了哪些特性呢 ...
- Z-Blog火车头免登录发布教程+插件3.2+支持最新Z-Blog1.7
Z-Blog免登录采集评论,之前没有加入评论接口,今天把评论接口写好了,写一下简单的教程,(采集评论规则是一件很麻烦的事)有时候采集文章的时候也采集评论,今天教大家怎样用我的Z-Blog免登录采集插件 ...
- Solution -「洛谷 P4688」「YunoOI 2016」掉进兔子洞
Description (Link)[https://www.luogu.com.cn/problem/P4688]. 每次询问三个区间,把三个区间中同时出现的数一个一个删掉,问最后三个区间剩下的数的 ...
- 掌握这些技巧,让Excel批量数据清洗变得简单高效!
什么是数据清洗 数据清洗是指在数据处理过程中对原始数据进行筛选.转换和修正,以确保数据的准确性.一致性和完整性的过程.它是数据预处理的一部分,旨在处理和纠正可能存在的错误.缺失值.异常值和不一致性等数 ...
- Langchain-Chatchat项目:1-整体介绍
基于Langchain与ChatGLM等语言模型的本地知识库问答应用实现.项目中默认LLM模型改为THUDM/chatglm2-6b[2],默认Embedding模型改为moka-ai/m3e-b ...
- 关于 iPhone 上的相机功能
关于 iPhone 上的相机功能 了解 iPhone 上的摄影风格.快录功能.超广角摄像头和其他相机功能. 通过摄影风格功能锁定您的风格 借助 iPhone 13 各款机型和 iPhone SE( ...
- Java 集合的排序(正序倒序)、查找元素的下边、最大值、最小值
Java 集合的排序(正序倒序).查找元素的下边.最大值.最小值 集合的排序 集合查找对应元素的下标 集合的最大最小值 集合的排序 使用Collections.sort()排序,默认是递增.加上比较器 ...
- 删除小程序scroll-view的滚动条
小程序scroll-view滚动条很丑,想隐藏? 在有scroll-view滚动条页面的wxss里添加: ::-webkit-scrollbar { display: none; width: 0; ...
- 2023-10-21:用go语言,一共有三个服务A、B、C,网络延时分别为a、b、c 并且一定有:1 <= a <= b <= c <= 10^9 但是具体的延时数字丢失了,只有单次调用的时间 一次调
2023-10-21:用go语言,一共有三个服务A.B.C,网络延时分别为a.b.c 并且一定有:1 <= a <= b <= c <= 10^9 但是具体的延时数字丢失了,只 ...