jenkins基础
# 一、jenkins介绍
# jenkins原理
与gitlab、maven、tomcat的集成
1 必须从gitlab(源码私服) 获取我要打包的源
1.1下载指定分支最新源码(TEst)
1.2 并在本地切换过去
2 运行 mvn clean install 构建打包
3 打包之后存储至指下位置
4 将对应的包 上传到我们的nexus 私服(deploy、用户和密码)
5 基于Tomcat进行动态部署上去。
# jenkins拓扑图
1)首先,开发人员每天进行代码提交,提交到Git仓库
2)然后,Jenkins作为持续集成工具,使用Git工具到Git仓库拉取代码到集成服务器,再配合JDK,
Maven等软件完成代码编译,代码测试与审查,测试,打包等工作,在这个过程中每一步出错,都重新再执行一次整个流程。
3)最后,Jenkins把生成的jar或war包分发到测试服务器或者生产服务器,测试人员或用户就可以访问应用。
# 服务器列表
虚拟机统一采用CentOS7。
名称 | IP地址 | 安装的软件 |
---|---|---|
代码托管服务器 | 192.168.66.161 | Gitlab-12.4.2 |
持续集成服务器 | 192.168.56.160 | Jenkins-2.190.3,JDK1.8,Maven3.6.2,Git, SonarQube |
应用测试服务器 | 192.168.56.162 | JDK1.8,Tomcat9 |
参考:【Jenkins】持续集成环境实战_努力充实,远方可期-CSDN博客 (opens new window)
# 二、jenkins部署与环境安装
参考: jenkins持续集成王者版 | 君哥的学习笔记 (it235.com) (opens new window)
安装jenkins环境: java8或者java11以上、 maven, jenkins安装推荐直接安装,docker形式可能会有些问题
官方文档:https://www.jenkins.io/zh/ window版下载 (opens new window)
# 配置ci用户组,创建jenkins用户,并且指定ci组
$ groupadd ci
$ useradd jenkins -g ci
# 创建存放jenkins工具的目录,并指定权限,因jenkins后期构建比较占用磁盘,此处建议先挂载磁盘
$ mkdir -p /data/software
$ chown -R jenkins:ci /data/software
# 切换jenkins用户,进入到software目录,并下载jenkins.war
$ su jenkins
$ cd /data/software/
# 如果下载较慢,建议采用迅雷下载,然后上传
$ wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
2
3
4
5
6
7
8
9
10
11
12
13
# 1、windows版安装
下载msi文件,直接进行安装就可以了,密码
如果8080端口被占用,可以在Jenkins安装路径下的
C:\Program Files\Jenkins\jenkins.xml
文件中修改端口jenkins的启动与重启,在服务里面操作, 或者 http://localhost:18081/restart
目录: C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\updates, 将.jenkins\updates\default.json里面的
updates.jenkins.io/download
更换为mirrors.tuna.tsinghua.edu.cn/jenkins
将www.google.com
更换为www.baidu.com
# 2、centos版安装
# A、yum方式安装
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
yum install epel-release # repository that provides 'daemonize'
yum install java-11-openjdk-devel #如果有安装jdk1.8,这一步可以不安装
yum install jenkins
vi /etc/init.d/jenkins # 修改配置,添加java运行路径, 或者建立软连接
# ln -s /mnt/app/jdk1.8.0_202/bin/java /usr/lib/java #建立软连接
vi /etc/sysconfig/jenkins #修改端口为18081,启动用户名为root,默认为jenkins
systemctl daemon-reload
systemctl start|stop|restart jenkins
http://192.168.56.160:18081/jenkins/
vi /var/lib/jenkins/secrets/initialAdminPassword
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
如果你的
/etc/init.d/jenkins
文件无法启动Jenkins,编辑配置文件/etc/sysconfig/jenkins
, 修改HTTP_PORT=18081
参考:yum安装Jenkins 最简单最全的教程_苍云烟-CSDN博客_yum 安装jenkins (opens new window)
# B、war方式安装
a>下载 Jenkins (opens new window).
b> 打开终端进入到下载目录.
c> 运行命令 java -jar jenkins.war --httpPort=8080
.
d> 打开浏览器进入链接 http://localhost:8080
.
e> 按照说明完成安装.
推荐放在tomcat当中进行使用
# 3、jenkins插件安装
Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用Maven构建项目等功能需要依靠插件完成。接下来演示如何下载插件。
# 修改Jenkins插件下载地址
Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址: Jenkins->Manage Jenkins->Manage Plugins,点击Available(可选插件)
这样做是为了把Jenkins官方的插件列表下载到本地,接着修改地址文件,替换为国内插件地址
将updates.jenkins.io/download
更换为mirrors.tuna.tsinghua.edu.cn/jenkins
将www.google.com
更换为www.baidu.com
cd /var/lib/jenkins/updates
sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i
's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
2
3
最后,Manage Plugins点击Advanced,把Update Site改为国内插件下载地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 提交后,在浏览器输入: http://localhost:18081/restart ,重启Jenkins。
# 三、jenkins项目配置与管理
- 升级站点url为:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
之后提交并立即获取,默认的是https://updates.jenkins.io/update-center.json
# 插件
1、ssh :
2、Deploy to container
3、Maven Integration
4、Maven Invoker
5、SonarQube Scanner
# 配置环境
maven 指定MAVEN_HOME的目录
jdk1.8: Oracle Account : 578521128@qq.com 密码:Zhouxp841220 2696671285@qq.com 密码:Oracle123
# Jenkins用户权限管理
Role-based Authorization Strategy 插件
# Jenkins凭证管理
Credentials Binding插件
# Maven安装和配置
Maven Integration插件
指定部署到私服的仓库地址,仓库id, 在setting.xml里面配置server
<!-- 发布稳定版 -->
<server>
<id>nexusReleases</id>
<username>deployment</username>
<password>deployment.6139</password>
</server>
<!-- 发布快照版 -->
<server>
<id>nexusSnapshots</id>
<username>deployment</username>
<password>deployment.6139</password>
</server>
2
3
4
5
6
7
8
9
10
11
12
# Tomcat安装和配置
Deploy to container插件
配置tomcat的 tomcat-user.xml
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat.123" roles="manager-gui,manager-script,,manager-jmx,manager-status,tomcat,admin-gui,admin-script"/>
</tomcat-users>
2
3
4
5
6
7
8
9
10
tomcat8以上的话,修改webapps/manager/META-INF/context.xml文件
注释掉配置或 allow 修改为 allow="^.*$"
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
2
3
4
5
# Pipeline流水线项目构建
Pipeline插件