CentOS 7 Gitlab+Jenkins持续集成+自动化部署

时间:2024-01-11 18:01:14

基于上次的环境<部署Gitlab+Jenkins持续集成环境> 来实现自动化部署

系统管理–>插件管理–>安装以下插件:

Credentials Plugin(默认已经安装)   # 签名证书管理插件

Gitlab Plugin    # 安装后从gitlab获取代码

Git Plugin 和 Git Client Plugin    # 用于jenkins在gitlab中拉取源码

GitLab Hook   # gitlab触发jenkins构建项目

gitlab Authentication  # gitlab和jenkins认证相关的插件

SSH Plugin    # 进程执行shell脚本

Publish Over SSH    # 用于通过ssh部署应用

如果可选插件里面没有到已安装的里面查一下

将代码发布到web服务器

通过执行脚本或者命令的方式来发布代码 , 注意权限的问题 , 如果不是root用户要保持所有服务器上的用户ID一致

安装apache

[root@Web ~]# yum -y install httpd
[root@Web ~]# systemctl start httpd

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

准备自劢部署 web代码事项 

实现root用户可以无密码直接登录系统

 # 在哪台机器上自劢发布代码,就需要让jenkins的root用户可以免密登录到那台服务器上
[root@Jenkins ~]# ssh-copy-id root@192.168.94.33
[root@Jenkins ~]# ssh 192.168.94.33
# 如果使用的不是root用户 , 而是普通用户 ,那么要授予普通用户sudo权限, 例:visudo添加 jenkins ALL=(ALL)    NOPASSWD: /usr/bin/ssh 

创建自动上传web代码的一个简单的脚本 , 实际还需要备份

[root@Jenkins ~]# vim push.sh
#!/bin/bash
cd /root/damowang.cn-web
git pull
scp -r ./* root@192.168.94.33:/var/www/html
[root@Jenkins ~]# chmod +x push.sh

配置Jenkins

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

浏览器访问web服务器

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

实现Gitlib触发Jenkins自动部署 

是在公司的测试环境当中,当开发人员向gitlab仓库提交代码后,gitlab自动通知jenkins进行构建项目、代码质量测试然后部署至测试环境,对生生产环境,后期使用手动部署代码

安装Gitlab插件 

系统管理-管理插件-可选插件,安装Gitlab Hook Plugin和Build Authorization Token Root  以及 Build Token Trigger 

配置身份验证令牌

生成Token 

[root@Jenkins ~]# openssl rand -hex
8bde00c8584aa806692e69b4

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

在git项目配置界面设置链接和token 

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

 格式 : http://"jenkins地址"/buildByToken/build?job="jenkins项目名"&token="token值"

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

测试gitlab触发jenkins自动部署 

[root@Gitlab ~]# cd damowang.cn-web/
[root@Gitlab damowang.cn-web]# echo "" >> index.html
[root@Gitlab damowang.cn-web]# git add index.html
[root@Gitlab damowang.cn-web]# git commit -m "loewife index.html"
[master 6c6f9df] loewife index.html
file changed, insertion(+)
[root@Gitlab damowang.cn-web]# git push -u origin master
Counting objects: , done.
Writing objects: % (/), bytes | bytes/s, done.
Total (delta ), reused (delta )
To git@192.168.94.11:damowang/damowang.cn-web.git
8bedbbb..6c6f9df master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。

访问web页面查看代码是否更新

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

到这已经实现自动拉取Gitlab代码+自动部署代码到测试环境 

下面增加Build Pipeline插件以流程图的形式展示各个Job的顺序 

 这个插件能够以流程图的形式展示各个Job 顺序,依赖关系等等

下载完之后点击新建视图

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

CentOS 7 Gitlab+Jenkins持续集成+自动化部署

CentOS 7 Gitlab+Jenkins持续集成+自动化部署