Linux下基于Gitlab和Jenkins的自动化部署实例(一)—执行shell脚本(方法一)

续我的博文:https://mp.csdn.net/postedit/89232113即Gitlab已经安装部署好

和我的上篇博文:https://mp.csdn.net/postedit/89249342即Jenkins已经安装好

 

 

一、Gitlab+Jenkins服务简述:

 

GitLab是一个代码仓库,用来管理代码。Jenkins是一个自动化服务器,可以运行各种自动化构建、测试或部署任务。
所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins以一定频率自动运行测试、构建和部署的任务,
帮组开发团队更高效的集成和发布代码。

 

二、实验环境(rhel7.3版本)

1selinux和firewalld状态为disabled

2各主机信息如下:

主机ip
server1(git)172.25.83.1
server2(git,jdk,jenkins)172.25.83.2

 

三、基于Gitlab和Jenkins的自动化部署实例—执行shell脚本(方法一)

 

配置server2

 

1、安装git

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

 

2、进入jenkins界面:在jenkins上创建一个新的自由风格的项目(项目的名字随意给,我这里给的名字是hello)

 

点击“创建一个新任务”,在任务名称这栏中填入“hello”,选择“构建一个自有风格的软件项目”

点击“确定”

 

就这样,一个自由风格的项目(hello)就创建好了。

 

3、在创建好的hello项目中进行设定,使得该项目能够自动执行shell脚本

 

<1>配置“源码管理“

 

(1)点击“源码管理”,选择“git”方式,填入Gitlab的URL地址:git@172.25.83.1:root/test.git

 

Gitlab的URL地址来源于之前配置Gitlab时创建的项目test的URL地址,如下图:

 

 

 

(2)配置证书Credentials(如上图,如果不配置Credentials会报错)

 

点击Add的下拉菜单

 

选择Add的下拉菜单中的Jenkins

 

在类型的下拉菜单中选择“SSH  Username  with  private  key”;在Username中写入名字“root“;选中Private key后面的“Enter  directly”

 

这时候我们需要在Gitlab添加一个公钥 Jenkins添加一个私钥,之前我们Gitlab已经当做开发机生成过公钥和私钥了,我们使用现在的私钥放在Jenkins上就行了。(不过值的注意的是:Gitlab上添加的公钥和Jenkins上添加的私钥必须是一对)

 

复制粘贴到jenkins上

 

点击“添加”

 


(2)在Credentials的下拉菜单中选择“root”

 

<2>配置“构建触发器“

 

配置界面如下:

 

一、定时构建:不管SVN或Git中数据有无变化,均执行定时化的构建任务 ;

二、轮询SCM:只要SVN或Git中数据有更新,则执行构建任务;

三、构建语法说明:

1.首先格式为:* * * * *(五个星);

2.第一个*表示分钟,取值0~59
   第二个*表示小时,取值0~23
   第三个*表示一个月的第几天,取值1~31
   第四个*表示第几月,取值1~12
   第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

3.使用举例:

每隔10分钟构建一次:H/5 * * * *

每隔1小时构建一次:  H H/1 * * *

每月30号构建一次:    H H 30 * *

 

<3>配置“构建“

 

 

在“构建“中的“增加构建步骤”的下拉菜单中选择“执行shell”

 

在命令这栏写入想要执行的shell命令,比如“ls  -l”

 

在上面的三个配置完成之后,点击“保存”

 

4、测试

 

<1>测试一:

点击“返回面板”,查看可以执行shell脚本的hello工程是否已经配置好。s下面的球显示蓝色的,即表示构建成功

 

<2>测试二:

点击“hello”返回上一个页面,点击“#1“左边”蓝色的球“,查看控制台输出,如果有输出,则表示可以执行shell脚本的hello工程已经配置好

 

 

<3>测试三:

进入Jenkins的工作目录,查看是否有Gitlab上test项目中的内容,如果有,则表示可以执行shell脚本的hello工程已经配置好

[root@server2 ~]# cd /var/lib/jenkins/workspace/hello   #Jenkins的工作目录
[root@server2 hello]# ll
total 8
-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
index.html  README.md
[root@server1 test]# echo xjj > file1   #必须在该目录(test的仓库目录)下执行
[root@server1 test]# git add file1
[root@server1 test]# git commit -m "add file1"
[master fcc8eb5] add file1
 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 git@172.25.83.1:root/test.git
   9bcf5d2..fcc8eb5  master -> master
Branch master set up to track remote branch master from origin.

 

(2)在server2端的Jenkins的web界面上查看,是否进行了第二次构建,查看控制台输出是否多了内容file1,并在Jenkins工作目录下查看是否多了内容file1

 

 

[root@server2 ~]# ll /var/lib/jenkins/workspace/hello
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

 

就这样,一个可以执行shell脚本(这里执行的命令是“ls -l”)的hello项目就配置好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值