栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Jekins基础(二)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jekins基础(二)

目录

一、持续集成环境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 -version
openjdk 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"               #修改用户为root
JENKINS_PORT="8888"               #修改端口为8888

4.启动jenkins
[root@jekins ~]# systemctl start jenkins       
[root@jekins ~]# netstat -natp | grep 8888
tcp6       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]# ls
default.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 rsa
Generating 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/maven
export 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 8080
tcp6       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完成后,开始构建

浏览器验证效果

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

结果验证

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/733662.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号