欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Jekins基础

时间:2023-06-27

目录

一、持续集成环境Jenkins安装

1.安装Jenkins需要依赖JDK

2.获取软件包 jenkins

3.修改jenkins配置

4.启动jenkins

5.获取admin密码 

6.添加管理员账户,并进入Jenkins后台

二、持续集成环境Jenkins插件管理

1.修改Jenkins插件下载地址

2.下载中文汉化插件​

3.持续集成环境Jenkins用户权限管理

4.持续集成环境Jenkins凭证管理

5.持续集成环境Maven安装和配置

6.持续集成环境Tomcat安装和配置

三、Jenkins构建Maven项目

1.Jenkins构建的项目类型介绍

2.Jenkins项目构建类型自由风格项目

3.Jenkins项目构建类型Maven项目构建

4.Jenkins项目构建类型Pipeline流水线项目构建


一、持续集成环境Jenkins安装

1.安装Jenkins需要依赖JDK

关闭防火墙机制

[root@jekins ~]# systemctl stop firewalld[root@jekins ~]# systemctl disable firewalld[root@jekins ~]# setenforce 0

安装路径:/usr/lib/jvm

[root@jekins ~]# yum install java-1.8.0-openjdk* -y[root@jekins ~]# java -versionopenjdk version "1.8.0_322"

2.获取软件包 jenkins

[root@jekins ~]# ls #上传jekins软件包jenkins-2.277.4-1.1.noarch.rpm[root@jekins ~]# rpm -ivh jenkins-2.277.4-1.1.noarch.rpm #进行安装

3.修改jenkins配置

[root@jekins ~]# vim /etc/sysconfig/jenkins...JENKINS_USER="root" #修改用户为rootJENKINS_PORT="8888" #修改端口为8888

4.启动jenkins

[root@jekins ~]# systemctl start jenkins [root@jekins ~]# netstat -natp | grep 8888tcp6 0 0 :::8888 :::* LISTEN 70126/java

浏览器访问服务:192.168.100.129:8888

5.获取admin密码 

进入入门界面,选择插件安装

6.添加管理员账户,并进入Jenkins后台

二、持续集成环境Jenkins插件管理

Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用Maven构建项目等功能需要依靠插件完成。接下来演示如何下载插件。

1.修改Jenkins插件下载地址

Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址

把Jenkins官方的插件列表下载到本地,接着修改地址文件,替换为国内插件地址

[root@jekins ~]# cd /var/lib/jenkins/[root@jekins jenkins]# cd updates/[root@jekins updates]# lsdefault.json hudson.tasks.Maven.MavenInstaller[root@jekins updates]# sed -i 's/http://updates.jenkins- ci.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

再把Manage Plugins点击Advanced,把Update Site改为国内插件下载地址

更改完设置后,重启jenkins

2.下载中文汉化插件

下载插件

重启jenkins

3.持续集成环境Jenkins用户权限管理

可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权,限安装Role-based Authorization Strategy插件

下载完成之后,回到首页

回到首页,查找安装的插件

添加三个角色,点击Manage Roles

baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins访问权限。

role1:该角色为项目角色。使用正则表达式绑定"apple.*",意思是只能操作apple开头的项目。

role2:该角色也为项目角色。绑定"orange.*",意思是只能操作orange开头的项目。

回到主页,找到Manges Users

创建用户

给用户分配角色

kali用户分别绑定baseRole和role1角色

jack用户分别绑定baseRole和role2角色

设置管理和项目

创建项目测试权限

最后测试结果

4.持续集成环境Jenkins凭证管理

凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。

安装Credentials Binding插件

安装插件后,Manage Jenkins多了"凭证"菜单,在这里管理所有凭证

安装Git插件和Git工具

为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。

服务器安装Git工具

[root@jekins ~]# yum install git -y

第一种用户密码类型 

创建凭证

填写之前的Gitlab的账号和密码

测试凭证是否可用

创建一个FreeStyle项目:新建Item->FreeStyle Project->确定

找到"源码管理"->"Git",在Repository URL复制Gitlab中的项目URL 

保存配置后,点击构建”Build Now“ 开始构建项目

第二种SSH密钥类型

SSH免密登录示意图

使用root用户生成公钥和私钥

[root@jekins ~]# ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa already exists.Overwrite (y/n)? y[root@jekins ~]# cd .ssh/[root@jekins .ssh]# cat id_rsa.pub #查看公钥地址ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDA5Ym1riZUEP/wFm7fcVKehIAiVOhHdv3tZdy3eahfQW230iOKmiqADvaVTHJQkvOvDP/pulNKfXisL2to7+xVuU/nyDsrs5WPhYBPi1Hc7TK0Bl6T2EKM9IgqijdFJdx0okeAEScSvACQ9NMwVVtDZvantru8KvA5soGYvPEmCIkA8Ev0W6F6UGC1PfXHbmpZDycwSqfIPvPxvo1O5+3HFyfYbVk141fnBTHjF2WW4J/OGZikk+Aeobt/x5bW7w6oNYZq/QpxI8t9+3vjelIWiWi8AGIfu2MzgODwdIcrxCmB254/dLk3PiYIEoq2Zl8nXRNF47NHnB0JAZm3kpx9 root@jekins

把生成的公钥放在Gitlab中

以root账户登录gitlab->点击头像->Settings->SSH Keys,复制刚才id_rsa.pub文件的内容到这里,点击"Add Key"

在Jenkins中添加凭证,配置私钥

在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复制过来


测试凭证是否可用

新建"test02"项目->源码管理->Git,这次要使用Gitlab的SSH连接,并且选择SSH凭证

同样尝试构建项目,如果代码可以正常拉取,代表凭证配置成功!

5.持续集成环境Maven安装和配置

在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目。安装Maven

[root@jekins ~]# tar -xzf apache-maven-3.6.2-bin.tar.gz #解压[root@jekins ~]# mkdir -p /opt/maven #创建目录[root@jekins ~]# mv apache-maven-3.6.2/* /opt/maven #移动文件

配置环境变量

[root@jekins ~]# vim /etc/profile...export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk #末尾粘贴三行代码export MAVEN_HOME=/opt/mavenexport PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin[root@jekins ~]# source /etc/profile #配置生效

全局工具配置关联JDK和Maven

Jenkins->Global Tool Configuration->JDK->新增JDK,配置如下:

Jenkins->Global Tool Configuration->Maven->新增Maven,配置如下:

添加jenkins全局变量

Manage Jenkins->Configure System->Global Properties ,添加三个全局变量

JAVA_HOME、M2_HOME、PATH+EXTRA

修改Maven的settings.xml

[root@jekins ~]# mkdir /root/repo #创建本地仓库目录[root@jekins ~]# vim /opt/maven/conf/settings.xml.../root/repo #把注释去掉 ... #添加阿里云私服地址 alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central

测试Maven是否配置成功

使用之前的gitlab密码测试项目,修改配置

构建->增加构建步骤->Execute Shell 

开始构建

构建成功

6.持续集成环境Tomcat安装和配置

关闭防火墙机制

[root@tomcat ~]# systemctl stop firewalld [root@tomcat ~]# systemctl disable firewalld[root@tomcat ~]# setenforce 0

安装Tomcat相关服务

[root@tomcat ~]# yum install java-1.8.0-openjdk* -y #安装JDK[root@tomcat ~]# tar -xzf apache-tomcat-8.5.47.tar.gz #解压软件包[root@tomcat ~]# mkdir -p /opt/tomcat #创建目录[root@tomcat ~]# mv /root/apache-tomcat-8.5.47/* /opt/tomcat #移动文件[root@tomcat ~]# /opt/tomcat/bin/startup.sh #启动tomcat[root@tomcat ~]# netstat -natp |grep 8080tcp6 0 0 :::8080 :::* LISTEN 11958/java

浏览器测试

 配置Tomcat用户角色权限,默认情况下Tomcat是没有配置用户角色权限的 

后续Jenkins部署项目到Tomcat服务器,需要用到Tomcat的用户,所以修改tomcat以下配置

[root@tomcat ~]# vim /opt/tomcat/conf/tomcat-users.xml... #用户和密码都是tomcat #内容粘贴再里面

为了能够刚才配置的用户登录到Tomcat,还需要修改以下配置,默认不许允许远程访问,现在需要注释掉

[root@tomcat ~]# vim /opt/tomcat/webapps/manager/meta-INF/context.xml #注释掉

重启Tomcat,访问测试

[root@tomcat ~]# /opt/tomcat/bin/shutdown.sh #停止服务[root@tomcat ~]# /opt/tomcat/bin/startup.sh #开启启动

再进行测试

三、Jenkins构建Maven项目

1.Jenkins构建的项目类型介绍

Jenkins中自动构建项目的类型有很多,常用的有以下三种:自由风格软件项目、Maven项目、流水线项目

每种类型的构建其实都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在实际开发中可以根据自己的需求和习惯来选择。(PS:个人推荐使用流水线类型,因为灵活度非常高)

2.Jenkins项目构建类型自由风格项目

创建项目

配置源码管理,使用ssh方式从gitlab拉取代码,配置完成后,点击应用并保存。

开始构建Build Now

刚才创建的项目,点击设置进行编译打包

构建->添加构建步骤->Executor Shell,设置完成后,点击应用并保存

把项目部署到远程的Tomcat里面,需要安装 Deploy to container插件

构建后操作

点击"Build Now",开始构建过程

浏览器访问

部署成功后,访问项目

演示改动代码后的持续集成,IDEA中源码修改并提交到gitlab

3.Jenkins项目构建类型Maven项目构建

安装Maven Integration插件,重启jenkins

开始创建Maven项目

项目配置

验证是否能成功再IDEA里修改代码,push到远程仓库

gitlab先查看

验证成功后,开始构建

浏览器验证

4.Jenkins项目构建类型Pipeline流水线项目构建

Pipeline概念:Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。

Pipeline好处:

代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流程。

持久:无论是计划内的还是计划外的服务器重启,Pipeline都是可恢复的。

可停止:Pipeline可接收交互式输入,以确定是否继续执行Pipeline。

多功能:Pipeline支持现实世界中复杂的持续交付要求。它支持fork/join、循环执行,并行执行任务的功能。

可扩展:Pipeline插件支持其DSL的自定义扩展 ,以及与其他插件集成的多个选项。

如何创建 Jenkins Pipeline

Pipeline 脚本是由 Groovy 语言实现的,但是我们没必要单独去学习 Groovy

Pipeline 支持两种语法:Declarative(声明式)和 scripted Pipeline(脚本式)语法

Pipeline 也有两种创建方法:可以直接在 Jenkins 的 Web UI 界面中输入脚本;也可以通过创建一个 Jenkinsfile 脚本文件放入项目源码库中

安装Pipeline插件

插件安装完成后,会出现相应的模块

#Declarative声明式-Pipeline

流水线->选择HelloWorld模板

stages:代表整个流水线的所有执行阶段。通常stages只有1个,里面包含多个stage。

stage:代表流水线中的某个阶段,可能出现n个。一般分为拉取代码,编译构建,部署等阶段。

steps:代表一个阶段内需要执行的逻辑。steps里面是shell脚本,git拉取代码,ssh远程发布等任意内容,编写一个简单声明式Pipeline:

修改上面的代码

pipeline { agent any stages { stage('pull code) { steps { echo 'pull code' } } stage('build porject') { steps { echo 'build porject' } } stage('deploy item') { steps { echo 'deploy item' } } }}

点击构建,可以看到整个构建过程

#scripted Pipeline脚本式-Pipeline

继续返回配置,这次选择"scripted Pipeline"

重新构建项目

编写一个简单的脚本式Pipeline

声明式代码生成

再设置里找到流水线语法

开始构建项目

编译构建代码生成

回到流水线语法界面

重新设置配置文件

再次构建项目

部署代码生成

回到流水线语法

重新修改配置文件

再构建项目

验证构建效果

现在IDEA编写代码,再push到远程

再构建进行验证

浏览器最后查看效果

Pipeline的另一种构建方式Pipeline script from SCM

刚才我们都是直接在Jenkins的UI界面编写Pipeline代码,这样不方便脚本维护,脚本容易丢失,建议把Pipeline脚本放   在项目中(一起进行版本控制)

在项目根目录建立Jenkinsfile文件

然后就可以把当前文件Jenkinsfile的文件提交到gitlab上

重新配置web_demo_pipeline项目

验证效果

Push完成后,开始构建

浏览器验证效果

发现中文的字符没有显示出来变成了乱码

结果验证

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。