接下来介绍如何将Jenkins与平时使用的工具进行集成使用,这样使得大家在可以编写Job的同时,能够灵活使用任务去集成调用Jenkins集成运用。本篇主要介绍以下内容:1、Jenkins Linux Shell集成。Linux Shell模块作为Jenkins下最常使用的模块,在Jenkins平台内最受大家欢迎的模块,作为运维人员可以无缝的将很多保存在Linux系统下的脚本迁移到Jenkins平台内,便于日常管理。作为开发人员,你也可以将平时使用到的Linux命令行任务迁移到Jenkins平台内,进行日常的代码测试等工作。2、Jenkins参数集成。Jenkins参数作为Jenkins重要的组成部分,所有需要与Jenkins进行数据交互的数据都需要从这个接口中进入,我们可以传入不同的参数,让Jenkins的任务实现不同环境、不同版本、不同逻辑的执行效果。3、Jenkins Git集成。可以使用Jenkins内建的git插件,将github、gitlab等仓库代码克隆到Jenkins本地,这样便于后续的代码构建工作。4、Jenkins Maven集成。可以使用Jenkins内建的Maven插件去将我们从git仓库中克隆出来的java源代码,编译成jar包或者war包到本地,以便于后续开始的部署工作。5、Jenkins Ansible集成。可以使用Jenkins内建的shell模块调用我们本地的ansible命令行工具,从而实现Jenkins能够集成ansible工具进行远程服务器的部署管理功能。

Jenkins Linux Shell集成

第一步,登录Jenkins web首页,创建一个Freestyle Project,名称为shell-freestyle-job,选择Freestyle Project格式:

第二步,编辑描述信息,在描述那一栏填写:this is my first shell frestyle job.。然后添加build,其实就是你需要执行的信息。接着下拉菜单,在构建中选择Execute Shell选项:

接着在shell脚本框内编写shell脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh

user=`whoami`

if [ $user == 'deploy' ]
then
echo "Hello, my name is $user"
else
echo "Sorry, I am not $user"
fi

ip addr

cat /etc/system-release

free -m

df -h

py_cmd=`which python`

$py_cmd --version

然后点击应用和保存按钮,页面会自动退出当前的build界面。最后点击左侧的Build Now按钮开始build任务:

还可以点击右下角的蓝色小圆球来查看输出的日志信息:

Jenkins参数集成

第一步,登录Jenkins web首页,创建一个Freestyle Project,名称为parameter-freestyle-job,选择Freestyle Project格式:

第二步,编辑描述信息,在描述那一栏填写:this is my first parameter frestyle job.。接着点击下方的This project is parameterized(参数化构建过程)。然后下拉菜单,首先选择Choice Parameter选项参数:

然后在里面填写build时的选项参数信息,具体包括名称、选项和描述:

之后点击添加参数,选择String Parameter文本参数:

接着在里面输入以下信息:

之后点击添加参数,选择Boolean Parameter布尔参数:

之后点击添加参数,选择PassWorld Parameter密码参数:

第三步,添加build,其实就是你需要执行的信息:

然后在命令选项框内输入以下信息:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh

echo "Current deploy environment is $deploy_env"
echo "The build is $version"
echo "The paasword is $pass"

if $bool
then
echo "Request is approved"
else
echo "Request is rejected"
fi

然后点击应用和保存按钮,页面会自动退出当前的build界面。

第四步,点击“Build with Parameters”,开始运行任务。之后会进入构建前的参数选择界面,前面设置了选项参数,这里选择dev,下面的version是文本参数,默认为你前面设置的1.0.0。bool为前面设置的布尔值,默认为true。pass为前面设置的密码,默认为123456,当然你可以自己修改。然后点击下方的“开始构建按钮”按钮:

当出现蓝色的小圆球,说明项目已经构建完成了,然后点击那个小圆球,可以看到右侧已经成功输出了执行结果:

Jenkins Git集成

第一步,登录Jenkins web首页,创建一个Freestyle Project,名称为git-freestyle-job,选择Freestyle Project格式:

第二步,编辑描述信息,在描述那一栏填写:this is my first git frestyle job.。

接着往下来,点击git,然后复制从gitlab中tets-repo项目的https格式的地址放到下图的URL中:

之后点击左侧的build now按钮,开始构建项目:

Jenkins Maven集成

可以使用Jenkins内建的Maven插件去将我们从git仓库中克隆出来的java源代码,编译成jar包或者war包到本地,以便于后续开始的部署工作。点击 这里进入到Maven官网,然后选择Maven最新版tar.gz包下载地址https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz,然后回到Jenkins主机,在里面使用wget+你刚才复制的地址,开始将Maven下载到Jenkins主机上:

1
[root@jenkins ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

接下来按照如下命令依次执行,完成Maven的安装:

1
2
3
4
5
6
7
8
9
10
11
[root@jenkins ~]# tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /opt
[root@jenkins ~]# cd /opt/
[root@jenkins opt]# ls
apache-maven-3.6.3
[root@jenkins opt]# cd apache-maven-3.6.3/bin/
[root@jenkins bin]# ./mvn --version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /opt/apache-maven-3.6.3
Java version: 1.8.0_252, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1062.el7.x86_64", arch: "amd64", family: "unix"

可以看到这里就将Maven和Java的安装路径都输出打印出来了,这个后续会派上用场。

第一步,登录Jenkins web首页,创建一个Freestyle Project,名称为maven-freestyle-job,选择Freestyle Project格式:

第二步,编辑描述信息,在描述那一栏填写:this is my first maven frestyle job.。然后运行gitlab所在的虚拟机,在gitlab上新建一个Java-war-dev项目:

然后将本地的Java-war-dev文件夹上传到gitlab中该项目内即可。可以先使用 git -c http.sslverify=false clone https://gitlab.example.com/root/java-war-dev将其克隆到本地,然后使用git add .添加所有文件,接着使用git commit -m "project init",最后使用git -c http.sslverify=false push命令即可将其上传到gitlab对应的仓库:

接着往下来,点击git,然后复制从gitlab中Java-war-dev项目的https格式的地址放到下图的URL中:

第三步,添加build,其实就是你需要执行的信息,选择与maven相关的那项即可:

然后在里面输入package,其实就是想让它执行maven package打包编译操作。注意现在还是不能去build项目的,因为你还没有配置maven和java的环境变量,所以需要返回Jenkins后台工具管理界面配置Jenkins平台下的java_home,maven_home的路径。到Jenkins全局工具配置界面下(图片最上面的红色区域是版本更新提示,不用管它):

然后就是配置jdk和maven的home路径,这些就是你刚才在maven中获取的信息:

然后保存,回到maven-freestyle-job的配置页面,选择maven的版本:

然后点击保存,并点击项目左侧的Build Now按钮开始build项目。

Jenkins ansible集成

Jenkins ansible集成,这个过程较为复杂,它需要你在Jenkins主机上部署你之前在anible主机上的配置的ansible2.5+python 3.6虚拟环境,同时还需要配置了deploy用户下jenkins.example.com主机到test.example.com主机的ssh免秘钥认证。别忘记在/home/deploy目录下配置一个testservers清单,里面的代码为:

1
2
[testserver]
test.example.com ansible_user=root

它用于指定远程登录主机为test.example.com,后面表示需要登录到它的root用户下。以上步骤就不写了,前面都有详细配置。

第一步,登录Jenkins web首页,创建一个Freestyle Project,名称为ansible-freestyle-job,选择Freestyle Project格式,且描述信息为this is my first ansible freestyle job.

第二步,添加build,其实就是你需要执行的信息:

然后在命令选项框内输入以下信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh

set +x
source /home/deploy/.py3-a2.5-env/bin/activate
source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q

cd /home/deploy
ansible --version
ansible-playbook --version

cat testservers

ansible -i testservers testserver -m command -a "ip addr"
set -x

set +x用来关闭命令行扩展环境,避免一些无关的环境参数干扰Jenkins的任务日志。set -x用来打开命令行扩展环境,并完成Jenkins集成ansible任务。

之后点击左侧的Build Now按钮,开始构建项目,然后点击左侧蓝色的小圆球查看相应的日志信息。