Jenkins整合Gitlab

1 篇文章 0 订阅
1 篇文章 0 订阅

Jenkins整合Gitlab

1.配置Gitlab

创建一个新项目

上传服务器秘钥到gitlab

 

# 生成秘钥

[root@deploy ~]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:NRuBl+TBQow5l3nb+E/MCg95tpZRF/+amoRTaBIhTXw root@deploy

The key's randomart image is:

+---[RSA 2048]----+

|      .O+*+.     |

|      +.XoEo   . |

|       o.==+    o|

|         oo=. . o|

|        S +o.+ ..|

|         o+o= + .|

|          o*.B o |

|           o*.+  |

|           .o.   |

+----[SHA256]-----+

[root@deploy ~]# cat .ssh/id_rsa.pub

ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAABAQC1kOUt1qRxd/rJJkOIYOeM9u0twE9pZq4txKwEtAy3lT2LCcxgWbcjC0VBI84FO9XE8BKA/oEA1wCErVevnDoYfLT99x8t6SLc8bKZ9SOSAAt1LO5HkzaaBDnuoXyVRduWJHlN9zS7lGYxbEY1AHYWwA3hDl3Y/SPUC6ulwCU7QnbOn8GE7qGXW8BDdeTyIEXqn3pFYFTa7TiqnjR9w3iqzso32Yo/sDeEsdsm6uw8uEVUexBqeUdjB6OP35JLpnwaGhoXeiIW87fCtk37PFzb5quZB2yoBKTJHFU8lC+Ihh/Z/iGOyU0mmjvq8ot8P5RfDPFtpFc4Oipm3c3etNd root@deploy

将公钥上传到gitlab

 

初始化项目

在‘选择jenkins管理里的凭证管理

 

添加与gitlab的凭证

 

此处使用的用户名和密码就是gitlab代码库登录的账号密码,添加完后保存并且应用。

 

新建一个项目,在配置里选择源码管理

 

此处的URL就是gitlab里项目代码的HTTP地址,证书就选择刚才添加的凭证。添加完后保存并应用。

 

测试gitlab初始化项目到jenkins里。点击创建,就能看到下面的进度条。

 

点击进度条,然后点击控制台输出,就能看到刚才项目的构建情况。

 

配置Gitlab,为整合Jenkins做准备

创建访问令牌,设置方法如下图

 

复制访问令牌,备用

 

复制Gitlab仓库地址,备用

 

2.配置Jenkins

选择系统管理->管理插件->可选择插件->搜索 gitlab

 

插件安装完成后会显示

 

然后继续安装Gitlab AuthenticationGitlab Hook

 

配置jenkins连接gitlab,选择左侧的系统管理,然后选择中间的系统设置

 

然后点击左上角的配置,选择Gitlab

 

配置GitLabConnection Name随便填,Git Host URLGitLab的访问地址,然后点Add—jenkins,如图:

 

 

Credentials选择刚创建的GitLab Api Token,然后点下Test Connection,看下是否成功,如成功点击最下面的保存

 

配置Git plugin

 

创建一个测试工程,选择自由风格

 

源码管理选择git,选择Add-Jenkins,配置Gitlab的账号密码

 

 

配置自动触发,点击构建触发器,先勾选Build when a change is pushed to GitLab,点击高级,然后再点击一下Generate就会生成一个Secret Token,如下

 

点击左下角的保存按钮。记录两个东西,一个是Build when a change is pushed to GitLab那一行中,GitLab CI Service URL:后面的 URL;
还有一个就是刚刚生成的Secret Token,这俩在后面配置GitLab工程时需要用到。

3.配置Gitlab工程

gitlab进入那个叫Ansible的项目,点击设置,点击导入所有仓库,在URL里填写刚刚记下来的URL,在安全令牌里填写刚刚记下来的Secret Token,如图:

 

然后点击下面绿色的增加Web钩子,如多出一个如下图的web钩子

 

如果提示 Urlis blocked: Requests to localhost are not allowed,这需要开启允许钩子访问本地网络

 

对刚刚生成的web钩子点击test,选择push events,然后就会出现200的成功字样,如图:

 

如果你再点击一下test上面的edit,就会看到钩子最近调用情况,再点击view details的话,就会看到具体的调用细节,如图:

 

4.测试自动构建

[root@deploy code]# echo "测试jenkins是否会自动构建" > auto-jenkins

[root@deploy code]# git add .

[root@deploy code]# git commit -m 'test autojenkins'

[master 2290848] test autojenkins

 1 file changed, 1 insertion(+)

 create mode 100644 auto-jenkins

[root@deploy code]# git push origin master

Counting objects: 4, done.

Delta compression using up to 8 threads.

Compressing objects: 100% (2/2), done.

Writing objects: 100% (3/3), 320 bytes | 0 bytes/s, done.

Total 3 (delta 0), reused 0 (delta 0)

To ssh://git@101.89.82.106:59888/root/Ansible.git

   3b6717d..2290848  master -> master

Jenkins查看构建记录,发现push动作已经出发了Jenkins的自动构建

 

查看构建的控制台输出日志,重点看commit messageFinished

 

5.测试ansible

[root@deploy ansible]# cd /etc/ansible/

[root@deploy ansible]# > hosts

[root@deploy ansible]# vim hosts

[client]

10.241.0.2

# 生成秘钥

[root@deploy ~]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:NRuBl+TBQow5l3nb+E/MCg95tpZRF/+amoRTaBIhTXw root@deploy

The key's randomart image is:

+---[RSA 2048]----+

|      .O+*+.     |

|      +.XoEo   . |

|       o.==+    o|

|         oo=. . o|

|        S +o.+ ..|

|         o+o= + .|

|          o*.B o |

|           o*.+  |

|           .o.   |

+----[SHA256]-----+

#将秘钥拷贝到客户机

[root@deploy ansible]# ssh-copy-id  10.241.0.2

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

root@10.241.0.2's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '10.241.0.2'"

and check to make sure that only the key(s) you wanted were added.

#测试ansible能否正常运行

[root@deploy ansible]# ansible  client -m ping

10.241.0.2 | SUCCESS => {

    "changed": false,

    "ping": "pong"

}

#新建一个测试的ansible-playbook

[root@deploy ~]# mkdir -p /data/Ansible-playbook

[root@deploy ~]# vim /data/Ansible-playbook/jenkins-mkdir.yml

---

- hosts: client

  gather_facts: no

  tasks:

    - name: mkdir jenkins-test-dir

      file: path=/data/jenkins-test-dir  state=directory

配置jenkins

登陆jenkins 选择系统管理->管理插件 安装以下两个插件: AnsibleAnsiColor

 

回到首页,新建一个任务,选择构建一个自由风格的任务

 

然后构建的步骤新加一个Ansible-playbook,配置脚本路径,然后保存

 

查看新构建的工程

 

执行刚才构建工程

 

查看工程构建的控制台输出

 

 

client主机查看 jenkins-test-dir 目录是否创建成功

#查看client的ip地址

[root@deploy ~]# cat /etc/ansible/hosts

[client]

10.241.0.2

#登陆到远程主机

[root@deploy ~]# ssh 10.241.0.2

Last login: Fri Aug  3 22:02:58 2018 from gateway

#查看目录是否存在

[root@client ~]# tree  /data/

/data/

└── jenkins-test-dir

#查看目录的详细信息

[root@client ~]# stat  /data/jenkins-test-dir/

  File: ‘/data/jenkins-test-dir/’

  Size: 6               Blocks: 0          IO Block: 4096   directory

Device: 802h/2050d      Inode: 68197841    Links: 2

Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2018-08-03 22:19:48.393000000 +0800

Modify: 2018-08-03 22:12:27.046000000 +0800

Change: 2018-08-03 22:12:27.046000000 +0800

#从上面的信息可以看到目录的创建时间为22:12:27, 与jenkins构建时间一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值