二、Jenkins
1、jenkins是什么?
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序
官网:https://jenkins.io/ 官方文档:https://jenkins.io/doc/
Jenkins特性:
开源的java语言开发持续集成工具,支持CI,CD;
易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理;
消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告;
分布式构建:支持Jenkins能够让多台计算机一起构建/测试;
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等;
丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。
2、Jenkins安装
2.1、准备工作
1)第一次使用 Jenkins,您需要:
● 机器要求:
○ 256 MB 内存,建议大于 512 MB
○ 10 GB 的硬盘空间(用于 Jenkins 和 Docker 镜像)
● 需要安装以下软件:
○ Java 8 ( JRE 或者 JDK 都可以)
○ Docker (导航到网站顶部的Get Docker链接以访问适合您平台的Docker下载)
2)下载并运行 Jenkins
- 下载 Jenkins.
- 打开终端进入到下载目录.
- 运行命令 java -jar jenkins.war .
- 打开浏览器进入链接 http://localhost:8080 .
- 按照说明完成安装.
2.2、Jenkins启动
2.2.1、离线问题
发现jenkins处于离线状态(且在后台启动其实已经报错),无法安装相应的插件,因此需要解决此离线
问题:
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid
certification path to requested target
原因是就是升级站点的链接https://updates.jenkins.io/update-center.json默认是https的,如何解决呢?
2.2.2、解决方案
第一步:打开配置页面
http://localhost:8080/pluginManager/advanced
进去以后是这样的
第二步:
Https协议改为http
修改后的为:
http://updates.jenkins.io/update-center.json
第三步:重启Jenkins
OK,重启后再次输入密码进入就是正常的啦,正常的页面如下:
2.3、访问jenkins
打开浏览器,访问ip:8080进行安装,ip为linux机器ip
提示需要输入管理员密码,输入 7232b196999544dda7451a6364bce235 ,点击继续,会初始化一小段时间
这里我选择安装推荐的插件
上面等插件安装完后,就进入到下面界面,提示要创建第一个admin用户,并设置用户名密码
这里我直接创建用户名为admin,密码自定义:
点击保存并完成,然后进行实例配置:
提示配置jenkins URL,这里保持默认即可,继续点击保存并完成
提示jenkins已经就绪,现在就可以开始使用jenkins了:
2.4、Jenkins配置
#查看jenkins的配置文件,定义了home、JAVA_CMD、user、port等基础配置,保持默认即可
[root@lzx ~]# cat /etc/sysconfig/jenkins
## 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=""
## 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(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
#
# Pass arbitrary arguments to Jenkins.
# Full option list: java -jar jenkins.war --help
#
JENKINS_ARGS=""
2.5、主程序目录
[root@lzx ~]# ls ~/.jenkins/ //查看程序主目录
config.xml nodes
hudson.model.UpdateCenter.xml plugins
hudson.plugins.git.GitTool.xml queue.xml.bak
identity.key.enc secret.key
jenkins.CLI.xml secret.key.not-so-secret
jenkins.install.InstallUtil.lastExecVersion secrets
jenkins.install.UpgradeWizard.state updates
jenkins.model.JenkinsLocationConfiguration.xml userContent
jobs users
logs workflow-libs
nodeMonitors.xml
jobs 浏览器上面创建的任务都会存放在这里
logs 存放jenkins相关的日志
nodes 多节点时用到
plugins 插件所在目录
secrets 密码秘钥所在目录 //jobs和plugins目录比较重要
2.6、JDK配置
cat /etc/profile #查看环境变量
JDK安装配置:[先把JDK安装到Linux服务器,且配置完善]
2.7、maven配置
2.7.1、安装maven
官网地址:http://maven.apache.org/download.cgi
下载地址:apache-maven-3.3.9-bin.tar.gz
配置环境变量:vim /etc/profile 写到最后,我用的3.3.9的版本
export M2_HOME=/user/apache-maven-3.3.9
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
2.7.2、Jenkins配置maven
2.8、插件安装
如果jenkins需要安装什么插件,可以直接安装即可。
1)Maven Integration plugin 安装此插件才能构建maven项目
2)Deploy to container Plugin 安装此插件,才能将打好的包部署到tomcat上
2.9、系统设置
这个没有话看一下上面的插件,没安装maven的插件就没有这个配置:
2.10、git配置
2.10.1、git地址错误
原因分析:这是由于git客户端版本过低造成的!或者系统中没有安装git所造成的
Jenkins本机默认使用"yum install -y git" 安装的git版本比较低,应该自行安装更高版本的git
2.10.2、安装git
安装git
[root@jenkins ~]# yum -y install libcurl-devel expat-devel curl-devel gettextdevel
openssl-devel zlib-devel
[root@jenkins ~]# yum -y install gcc perl-ExtUtils-MakeMaker
[root@jenkins ~]# cd /usr/local/src/
[root@jenkins src]# wget
https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.1.1.tar.gz
[root@jenkins src]# tar -zvxf git-2.1.1.tar.gz
[root@jenkins src]# cd git-2.1.1
[root@jenkins git-2.1.1]# make prefix=/usr/local/git all
[root@jenkins git-2.1.1]# make prefix=/usr/local/git install
添加git到环境变量
[root@jenkins git-2.1.1]# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
[root@jenkins git-2.1.1]# source /etc/bashrc`
查看更新后的git版本和所在路径
`[root@jenkins ~]``# git --version
``git version 2.1.1``
[root@jenkins ~]``# whereis git
``git: ``/usr/local/git`
2.10.3、设置git
查看git安装地址:
设置git安装地址:
依次打开"系统管理" -> “系统设置” -> “Git” -> “Path to Git executable”,在此处填入"whereis git"查
询出的地址 + “/bin/git” (如上面"whereis git"的地址为"/usr/local/git",则应该填入
“/usr/local/git/bin/git”) 并保存