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 ...
随机推荐
- C# ENUM 字符串输出功能
public enum MeasurementType { Each, [DisplayText("Lineal Metres")] LinealMetre, [DisplayTe ...
- c++中一个多态的实例
#include <iostream> #include <fstream> #include <vector> #include <algorithm> ...
- jmeter--001.介绍、下载与安装
一.介绍 使用场景: -1.接口测试 -2.性能测试 .... 特点: -1.开源.轻量级.插件化 -2.适合自动化和持续集成 二.下载(Windows环境) 下载网址:http://jmeter.a ...
- jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题
jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题 之前在项目中根据需求,需要自定义标签,经过查询w3c文档,自己也踩了一些坑,特此记录自定义标签的步骤,下面就以我之前的一个例子中的定义一 ...
- larave异步多图片上传的实现和注意事项及$file的对象函数
要使用多图片上传,首先要在input添加multipart,同时注意name的参数要加[],不然,不算是数组.具体如下,注意绿色地方.如果是单张图片,把[]去掉,不要multiple; <inp ...
- jenkins-参数化构建(二)插件:Extended Choice Parameter
一.Extended Choice Parameter插件 这个插件相对丰富,安装过程就不过多介绍了,在点击项目设置后会出现下载的插件名字. 写在文件中构建时效果如下:
- SSH集成(Struts+Spring+Hibernate)
环境:struts2.3.Xspring4.0.0hibernate4.2 思路:从下开始往上集成;层与层之间没有关系;在集成的时候,只关注当前集成的那个层的内容; 1,创建一个空的web项目;重新定 ...
- myeclipse连接mysql失败出错,已解决问题
问题描述: 解决方案:
- docker container 互联
创建一个 network docker network create test-network 创建rocketmq docker run -d -p 9876:9876 -p 10909:1090 ...
- sql server里中自增长的ID重新开始排
dbcc checkident('tablename',reseed,0); 执行:dbcc checkident('TableA',reseed,0); 执行结束:中途报了几次插入重复键. 结论:用 ...