续我的上篇博文:https://mp.csdn.net/postedit/89250322
##物理机
[root@foundation83 Desktop]# iptables -t nat -I POSTROUTING -s 172.25.83.0/24 -j MASQUERADE
##server2
[root@server2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.25.83.2
PREFIX=24
GATEWAY=172.25.83.83 #设置网关地址
DNS1=114.114.114.114 #设置DNS域名解析
[root@server2 ~]# ping www.baidu.com #测试网络是否ok
PING www.a.shifen.com (220.181.112.244) 56(84) bytes of data.
64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=1 ttl=50 time=23.0 ms
64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=2 ttl=50 time=23.7 ms
64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=3 ttl=50 time=35.0 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 23.070/27.307/35.090/5.513 ms
1、在jenkins下载有关gitlab的插件(Gitlab ,Gitlab Hook)
系统管理—>管理插件—>可选插件
可以在过滤选择框内搜索gitlab,在搜索结果中选择“Gitlab”和“Gitlab Hook”
点击“直接安装”,安装选中的这两个插件
下面的图片是插件安装成功之后的界面图
2、修改之前创建的hello项目的配置
在上一张图片的基础上,点击“返回首页”
点击“hello”
点击配置,进入hello项目的配置界面
<1>配置“源码管理“——上篇博文已经做过
<2>配置“构建“——上篇博文已经做过
<3>配置构建触发器
(1)选中“Build when a change is pushed to GitLab. GitLab webhook URL: http://172.25.83.2:8080/project/hello”。配置界面如下:
(2)点击高级,生成通行证token。配置界面如下:
点击“generate”,生成token
(3)取消之前勾选的“轮询 SCM”
值的一提的是:该Jenkins界面配置完“构建触发器“之后,不要关闭界面,因为要在Gitlab的web界面填入Secret token。该界面一关闭,就看不到Secrect token的内容了。
(4)在Gitlab的web界面
点击“小扳手”的标志
点击左下角的“设置”,找到关于“外发请求”的设置,设置图如下:
点击“Save changes”,进行保存
点击“项目”
点击“您的项目”
点击“Administrator/test”
点击左下角的“设置”,点击其中的“导入所有仓库”,其配置如下图:(1)在URL内写入Jenkins中“构建触发器”中的URL;(2)在Secret Token内内写入Jenkins中“构建触发器”中的生成的Secret Token。(3)选中下面所有的trigger(触发器)。
Jenkins中“构建触发器”中的URL及Select Token
上面的Webhook配置好之后,点击SSL验证中的Push events,进行触发
看到200则表示触发成功
3、测试
<1>测试一:
点击“返回面板”,查看可以执行shell脚本的hello工程是否已经配置好。s下面的球显示蓝色的,即表示构建成功
<2>测试二:
返回“hello”上一个页面,点击“#3“左边”蓝色的球“,查看控制台输出,如果有输出,则表示可以执行shell脚本的hello工程是否已经配置好
<3>测试三:
进入Jenkins的工作目录,查看是否有Gitlab上test项目中的内容,如果有,则表示可以执行shell脚本的hello工程是否已经配置好
[root@server2 ~]# cd /var/lib/jenkins/workspace/hello #Jenkins的工作目录
[root@server2 hello]# ll
total 12
-rw-r--r-- 1 jenkins jenkins 4 Apr 12 21:35 file1
-rw-r--r-- 1 jenkins jenkins 12 Apr 12 20:56 index.html
-rw-r--r-- 1 jenkins jenkins 8 Apr 12 20:56 README.md
<4>测试四:
下面我们来测试下轮询SCM(只要SVN或Git中数据有更新,则执行构建任务)
(1)在server1端:想Gitlab远程仓库推送内容
[root@server1 test]# pwd
/root/test
[root@server1 test]# ls
file1 index.html README.md
[root@server1 test]# echo is > file2 #必须在该目录(test的仓库目录)下执行
[root@server1 test]# git add file2
[root@server1 test]# git commit -m "add file2"
[master fcc8eb5] add file2
1 file changed, 1 insertion(+)
create mode 100644 file1
[root@server1 test]# git push -u origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 296 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:root/test.git
9bcf5d2..fcc8eb5 master -> master
Branch master set up to track remote branch master from origin.
(2)在server2端的Jenkins的web界面上查看,是否进行了第四次构建,查看控制台输出是否多了内容file2,并在Jenkins工作目录下查看是否多了内容file2
[root@server2 ~]# ll /var/lib/jenkins/workspace/hello
total 16
-rw-r--r-- 1 jenkins jenkins 4 Apr 12 21:35 file1
-rw-r--r-- 1 jenkins jenkins 3 Apr 14 23:49 file2
-rw-r--r-- 1 jenkins jenkins 12 Apr 12 20:56 index.html
-rw-r--r-- 1 jenkins jenkins 8 Apr 12 20:56 README.md