CentOS 7 Gitlab+Jenkins持续集成+自动化部署
基于上次的环境<部署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

准备自劢部署 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







浏览器访问web服务器

实现Gitlib触发Jenkins自动部署
是在公司的测试环境当中,当开发人员向gitlab仓库提交代码后,gitlab自动通知jenkins进行构建项目、代码质量测试然后部署至测试环境,对生生产环境,后期使用手动部署代码
安装Gitlab插件
系统管理-管理插件-可选插件,安装Gitlab Hook Plugin和Build Authorization Token Root 以及 Build Token Trigger
配置身份验证令牌
生成Token
[root@Jenkins ~]# openssl rand -hex
8bde00c8584aa806692e69b4


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

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


测试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页面查看代码是否更新

到这已经实现自动拉取Gitlab代码+自动部署代码到测试环境
下面增加Build Pipeline插件以流程图的形式展示各个Job的顺序
这个插件能够以流程图的形式展示各个Job 顺序,依赖关系等等
下载完之后点击新建视图



CentOS 7 Gitlab+Jenkins持续集成+自动化部署的更多相关文章
- Linux-GitLab+Jenkins持续集成+自动化部署
GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个 ...
- Jekens 配置多项目SCM GitLab+Jenkins持续集成环境
参考: 搭建GitLab+Jenkins持续集成环境图文教程 https://blog.csdn.net/ruangong1203/article/details/73065410 Jenkins中配 ...
- CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境
持续集成概述及运行流程 : 持续集成概述 :持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中 ,可以频繁的将代码部署集成到主干,并进行自动化测试 开发→代 ...
- 持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]
转载:https://www.abcdocker.com/abcdocker/2065 一.代码流水线管理 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目.如果使用jenkin ...
- GitLab+Jenkins持续集成
一.概述 GitLab是一个代码仓库,用来管理代码.Jenkins是一个自动化服务器,可以运行各种自动化构建.测试或部署任务.所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins ...
- Jenkins持续集成与部署
一.Jenkins简介 在阅读此文章之前,你需要对Linux.Docker.Git有一定的了解和使用,如果还未学习,请阅读我前面发布的相关文章进行学习. 1.概念了解:CI/CD模型 CI全名Cont ...
- gitlab+jenkins持续集成(三)
构建: 需要将jenkins服务器上 jenkins用户的公钥发送给 目标服务器的gs用户,使得在jenkins上能用gs免密登录目标服务器 复制密钥到目标机器上(需要登录到的机器) ssh-co ...
- gitlab+jenkins持续集成(一)
1. 环境:CentOS7.0,jdk-8u91-linux-x64.rpm,jenkins 2.7.4 ,gitlab 9.2.2 2. 安装jdk,jenkins (rpm -ivh ...
- gitlab+jenkins持续集成(二)
1.jenkins服务器上的配置 -bin.tar.gz -C /opt/ yum install -y git /conf/settings.xml #只需更改maven的地址 <?xml v ...
随机推荐
- Moonlight Shadow
歌词 Moonlight Shadow 月光幽灵 -- Dana Winner 1. The last that ever she saw him 那是她今生最后一次见到他 2. carried aw ...
- Docker操作笔记(一)使用镜像
使用镜像 一)获取镜像 从Docker镜像仓库获取命令的格式是: docker pull [选项] [Docker Registry 地址[:端口号]] 仓库名[:标签] 具体的选项可以通过docke ...
- img标签与span一起使用不在同一条线上
布局时 img标签与span标签在同一行是不能垂直,解决办法:在 img标签添加一个 vertical-align:middle; 即 <!-- img与span的文字与图片保持同一条水平线 在 ...
- NOIP-Cantor表
题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 我们以Z字形给上表的每一项编号.第一项是1/1,然后是1/2,2/1,3/1,2 ...
- FastDFS 分布式文件系统的安装与使用(单节点)
FastDFS 分布式文件系统的安装与使用(单节点) 跟踪服务器:192.168.4.121 (edu-dfs-tracker-01) 存储服务器:192.168.4.125 (edu-dfs-sto ...
- MySQL数据库的几种引擎
有些东西其实一直在用,但是突然问起来它是啥,可能你会很陌生,很陌生,很陌生 ....... mysql的四种引擎: 1.MyISAM存储引擎 不支持事务,不支持外键,优势是访问速度快,对事务完整性没有 ...
- Invalid bound statement (not found): com.xsw.dao.CategoryDao.getCategoryById] with root cause
五月 30, 2018 11:11:03 上午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() fo ...
- VS2017 未找到编译器可执行文件 csc.exe
vs2017 网站报错 原因Web.config是中下面这段:注释就可以了 <!--<system.codedom> <compilers> <compiler l ...
- XenServer多网卡绑定
xenserver通过 XenCenter可以绑定网卡,支持Active-Active和Active-Standby的模式,但是通过Xencenter只能绑定两块网卡为一组.更多的比如3块一组.4块一 ...
- day24:继承
1,复习1 # 面向对象编程 # 思想:角色的抽象,创建类,创建角色(实例化),操作这些示例 # 面向对象的关键字 class 类名: 静态属性 = 'aaa' def __init__(self): ...