gitlab持续集成,自动部署
yum install gitlab-ce
vi /etc/gitlab/gitlab.rb
#修改gitlab的访问ip和端口,ip用本机
external_url 'http://192.168.3.166:8099'
#重启gitlab
gitlab-ctl reconfigure
sudo wget -O/usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
useradd --comment 'GitLab Runner'--create-home gitlab-runner --shell /bin/bash
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
gitlab-runner start
sudo gitlab-runner register
Please enter the gitlab-ci coordinator URL(e.g. https://gitlab.com )
https://192.168.3.166:8099(输入上图的url)
Please enter the gitlab-ci token forthis runner
xxx(输入上图的token)
Please enter the gitlab-ci description forthis runner
[hostame] my-runner
Please enter the gitlab-ci tags forthisrunner(comma separated):
my-tag,another-tag
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell
stages:
- build
build:
stage: build
script:
#mvn 打包
- mvn clean package-Dmaven.test.skip=true
#将war包拷贝到另外一台服务器
- scp /home/gitlab-runner/builds/f0e79179/0/root/demo/target/demo-0.0.1-SNAPSHOT.war root@192.168.3.167:/data/www/demo-0.0.1-SNAPSHOT.war
#连接tomcat的服务器,执行deploy.sh,将war包拷贝到webapps下面,重启tomcat
- ssh root@192.168.3.167"sh /apps/shell/deploy.sh"
only:
- test
- master
#!/bin/bash
#defined
exportJAVA_HOME="/usr/local/jdk1.8.0_231/"
exportTOMCAT_HOME="/apps/apache-tomcat-8.5.43/"
PID=`ps -ef | grep java | grep apache-tomcat-8.5.43 | awk '{print $2}'`
echo $PID
echo "kill tomcat"
kill -9 $PID
echo "remover jarfile"
cd "$TOMCAT_HOME"/webapps
rm -rf demo*
echo "copy jar to tomcat webapp"
cp /data/www/demo*.war "$TOMCAT_HOME"/webapps/demo.war
cd "$TOMCAT_HOME"/bin
echo "start tomcat"
./startup.sh
1). 连接3.166
2). 切换到gitlab-runner用户
su gitlab-runner
3). 生成公私钥
ssh-keygen
4). 复制3.166的公钥到3.167
scp /home/gitlab-runner/.ssh/id_rsa.pub root@192.168.3.167:/home/id_rsa.pub
5). 连接3.167
6). 将公钥追加到keys后面
cat /home/id_rsa.pub >>~/.ssh/authorized_keys

gitlab持续集成,自动部署的更多相关文章
- CentOS 7 Gitlab+Jenkins持续集成+自动化部署
基于上次的环境<部署Gitlab+Jenkins持续集成环境> 来实现自动化部署 系统管理–>插件管理–>安装以下插件: Credentials Plugin(默认已经安装) ...
- 【iOS】Jenkins Gitlab持续集成打包平台搭建
Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...
- Linux-GitLab+Jenkins持续集成+自动化部署
GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个 ...
- ThoughtWorks开发持续集成及部署利器:Go
持续集成及部署利器:Go Go是一款先进的持续集成和发布管理系统,由ThoughtWorks开发.(不要和Google的编程语言Go混淆了!)其前身为Cruise,是ThoughtWorks在做咨 ...
- .NET Core 从 Github到 Nuget 持续集成、部署
一.前言 Nuget 作为一个.NET研发人员,我想你都不会陌生,他为我们提供非常方便的程序包管理,不管是版本,还是包的依赖都能轻松应对,可以说是我们的好助手.而 Nuget 除了官方nuget.or ...
- 03 持续集成和部署/基础设施 - DevOps之路
02 持续集成和部署/基础设施 - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi 服务的持续集成和部署这里有两套 ...
- vsts + XX云服务器构建netcore+docker持续集成交付部署
持续集成交付部署是什么意思,它给我们带来什么好处? 先贴一张图 持续集成(Continuous Integration) 持续集成强调开发人员提交了新代码之后,立刻进行构建.(单元)测试(这个要看情况 ...
- 持续集成①安装部署jenkins从git获取代码
持续集成①安装部署jenkins从git获取代码 一:持续集成的概念: 1.1:总体的概括 持续集成Continuous Integration 持续交付Continuous Delivery 持续部 ...
- 从零入门 Serverless | 教你 7 步快速构建 GitLab 持续集成环境
作者 | 存诚 阿里云弹性计算团队 本文整理自<Serverless 技术公开课>,"Serverless"公众号后台回复"入门",即可获取系列文章 ...
- Linux环境:持续集成环境部署系列
之前的博客介绍了Linux环境下持续集成环境部署的一些内容,这篇博客将其整理一下,算做一个index,方便自己和大家查阅... 1.linux下安装JDK Jenkins是一个java开源的持续集成工 ...
随机推荐
- POJ_1222_高斯消元
题目描述: 每组数据给出一个5*6的0 1矩阵,每次操作可以把某个位置及其四周的位置0 1置换,要求输出操作位置的矩阵. 思路: 每个位置操作2次则等于没有操作,所以每个位置有操作和不操作两种选择,爆 ...
- Codeforces 1175F The Number of Subpermutations (思维+rmq)
题意: 求区间[l, r]是一个1~r-l+1的排列的区间个数 n<=3e5 思路: 如果[l,r]是一个排列,首先这里面的数应该各不相同,然后max(l,r)应该等于r-l+1,这就能唯一确定 ...
- Golang import具体使用
使用gopath的时候,一般引用是从src下一层开始,比如src/github.com/…,引用github.com…,我的工程src/xxx.com/go-qb/…,引用xxx.com/go-qb/ ...
- 详解c++中对二维数组下标[][]的重载
首先定义一个矩阵类,我用一个二维数组存储矩阵中的数据,矩阵详细定义如下 class Matrix { public: Matrix(int rows, int cols) { _rows = rows ...
- ajax 解决中文乱码问题
最近遇到了ajax 中文乱码的问题.下面总结一下 1. HTTP协议的编码规定 在HTTP协议中,浏览器不能向服务器直接传递某些特殊字符,必须是这些字符进行URL编码后再进行传送.url编码遵循的规则 ...
- Java HashMap 四种遍历方式
HashMap遍历方式包含以下4种: 1.遍历KeySet,再通过Key来getValue. 2.使用entrySet的迭代器. 3.foreach entrySet的方式. 3.foreache v ...
- (转载)Linux平台下安装 python 模块包
https://blog.csdn.net/aiwangtingyun/article/details/79121145 一.安装Python Windows平台下: 进入Python官网下载页面下载 ...
- 自己用C语言写NXP S32K116 serial bootloader
了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 每次我有了新的EVA ...
- django 中 cookie与session 相关的知识
cookie :它是一个字典
- Python和Anoconda和Pycharm联合使用教程
简介 Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的.大型项目的开发. ...