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开源的持续集成工 ...
随机推荐
- HDU_5058_set
http://acm.hdu.edu.cn/showproblem.php?pid=5058 set容器的使用,set中保持元素的唯一性和有序性. 也可以用排序加离散化来模拟. #include< ...
- WeChall_Training: Programming 1 (Training, Coding)
When you visit this link you receive a message.Submit the same message back to http://www.wechall.ne ...
- Eclipse导入项目提示No projects are found to import解决办法
使用Eclipse导入项目时遇到No projects are found to import提示的解决办法. 这是因为导入的文件里面缺少两个文件:.classpath.project 在这里三种方案 ...
- 题解 SP1716 【GSS3 - Can you answer these queries III】
\[ Preface \] 没有 Preface. \[ Description \] 维护一个长度为 \(n\) 的数列 \(A\) ,需要支持以下操作: 0 x y 将 \(A_x\) 改为 \( ...
- 【Debian】 Debian 安装源配置
Debian 安装源配置 所有的Linux安装完后第一件事,就是要更新安装源 安装源是什么呢,安装源又称软件源,是指把软件的安装源地址放在一个pool里面,用一条命令(比如apt-get instal ...
- stm32f407使用Keil uV5建立工程日志
目录结构 Common ——包括延时函数等公用函数 STM32F4_FWLIB ——固件库 Project ——UV5工程相关文件 Main ...
- LVM 逻辑卷 (logica volume manager)
逻辑卷轴管理员 (Logical Volume Manager) 想像一个情况,你在当初规划主机的时候将 /home 只给他 50G ,等到使用者众多之后导致这个 filesystem 不够大, 此时 ...
- [HTML5] input标签 disable属性
<span>服务器名称:<input type="text" name="server_name" placeholder="服务器 ...
- C语言基础五 数组的应用
.根据用户输入的10人成绩并将其保存到数组中,求最高成绩,最低成绩和平均成绩 int scoure[10];//存储10个数据的数组 int i; int sum;//总成绩 int max,min, ...
- 编译Qualcomm的Hexagon exampls错误
在下载了Qualcomm的Hexagon SDK 351版本之后,想跑里面的examples,然后参照文档的说,比如在examples/common/sobel3x3_v60目录下面,先执行了SDK根 ...