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 ...
随机推荐
- RAID 0 ~ RAID 7
一.RAID解析1.RAID 0(1)将几块磁盘并行组合,横向写数据(2)并发IO,写数据最快缺点:不提供数据冗余,如果其中一块磁盘废掉,则数据全毁详细:条带深度大时,一次IO只能从一块磁盘上读取,无 ...
- (86)Wangdao.com第十九天_JavaScript 接口之 ParentNode 和 ChildNode
ParentNode 接口,ChildNode 接口 节点对象除了继承 Node 接口以外,还会继承其他接口. ParentNode 接口 表示当前节点是一个父节点,提供一些处理子节点的方法. Chi ...
- SSM的 日常错误 之 mybatis
HTTP Status 500 - Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemExc ...
- C语言复习0_准备工作
前言: 第一次接触C语言是大一下学期的时候,2013年上半年,那个时候的开发工具还是VS C++,今天了解了一下,常用的开发工具变成了CodeBlocks.决定趁着毕业到入职这一段CD时间,拾起这门语 ...
- 解决archlinux下QT程序,以及wineQQ无法输入中文(.xinitrc)
昨天安了i3wm,发现fcitx在很多程序中无法输入中文,nixnote2,还有ss-qt5 查了wiki,明明有在~/.xinitrc中加入 export XMODIFIERS=@im=fcitx ...
- /etc/init.d/sshd配置SSHD路径忘记修改导致启动失败
[root@lnlte2dmr3 ~]# bash[root@lnlte2dmr3 ~]# install -v -m700 -d /var/empty/sshdinstall: 正在创建目录&quo ...
- TZOJ 5271: 质因数的个数
求正整数N(N>1)的质因数的个数. 相同的质因数需要重复计算.如120=2*2*2*3*5,共有5个质因数. 输入 可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N< ...
- CatLog_小鱼要加油
python datetime 计算时间差 面向对象:类中的特殊成员 python中字符串的拼接 Django Django中一个项目使用多个数据库 Django中cookie和session使用 在 ...
- 普通Java Web项目为什么lib包要放在WEB-INF下
首先一个项目要编译好之后才能部署到Tomcat中运行. Tomcat运行时如何找编译好的.class文件呢,其实Tomcat下的web项目有两个预置的classpath(就是能找到.class文件的入 ...
- 异步请求取得json数据
一.异步请求 在之前我们请求数据的时候都是整个页面全部刷新了一次,也就是每次请求都会重新请求所有的资源.但是在很多时候不需要页面全部刷新,仅仅是需要页面的局部数据刷新即可,此时需要发送异步请求来实现这 ...