Centos7.4简单安装使用gitlab+maven+jenkins实现java代码的持续集成部署
1.工具的简单介绍
gitlab--源代码版本管理控制工具
maven--java代码编译构建工具
jenkins--基于java开发的自动化持续集成部署工具
sonar--代码质量管理工具
2.gitlab
2.1.CentOS Linux release 7.4.1708系统安装使用gitlab
1.关闭防火墙和selinux
systemctl stop firewalld.service
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
2.安装依赖包,安装gitlab
yum install -y curl policycoreutils openssh-server openssh-clients postfix
systemctl start postfix
3.修改yum源,由于国内网络环境特殊性,配置使用清华大学镜像源。
[root@iZbp1gp76zixjk79d0yfaxZ ~]# cat /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=
[root@iZbp1gp76zixjk79d0yfaxZ ~]# yum makecache
[root@iZbp1gp76zixjk79d0yfaxZ ~]# yum install -y gitlab-ce
4.修改配置文件,启动gitlab
[root@iZbp1gp76zixjk79d0yfaxZ ~]# cat /etc/gitlab/gitlab.rb | grep 'external_url' | grep -v "#"
external_url 'http://git.aimaidou.com'
gitlab-ctl reconfigure
gitlab-ctl stop
gitlab-ctl start
gitlab-ctl restart
5.使用方法
创建项目组,项目,代码分支管理,用户权限管理,隐藏注册功能, 数据备份迁移等等此处省略。具体的使用方法可以去查看官方文档。
6.这里重点说下gitlab的数据备份和迁移
1.修改配置
vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = "/data/backups/gitlab" #备份路径
gitlab_rails['backup_keep_time'] = 604800 #备份7天
2.重启加载配置
gitlab-ctl reconfigure
3.备份
gitlab-rake gitlab:backup:create
du -h 1531974641_2018_07_19_11.0.4_gitlab_backup.tar
4.还原
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab:backup:restore BACKUP=1531974641_2018_07_19_11.0.4
2.2.关于代码部署
2.2.1.理念
代码的部署应该具备可持续交付,可集成部署,可回滚等特点!
2.2.2.java代码的部署
对运维来讲要关注的问题:首先java代码如何获取--然后如何编译打包--代码包如何发送到指定的目标服务器--如何执行后续的操作,比如重启目标服务等等
这里我自己画的一个代码部署流程图,当然具体流程因公司因人而异!

3.jenkins
3.1.CentOS Linux release 7.0.1406 安装使用jenkins
3.1.1.安装java环境
1.首先去oracle官网找到指定的jdk压缩包然后将包传到服务器上。
解压缩jdk压缩包,配置系统环境变量
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/local/
ln -s /usr/local/jdk1.8.0_161 /usr/local/jdk
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_161
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dr.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
2.检测
[root@VM_1_3_centos ~]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
3.1.2.安装jenkins
cd /etc/yum.repos.d/
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
yum install jenkins
设置密码解锁安装插件使用即可,当然你也可以从官网下载jenkins的war包来使用!
3.1.3.关于使用
插件的安装: Gitlab,Gitlab Hook,Build Aut,Pipeline Maven Integration,Maven Intergration 等等这个完全看自己的需求!需要什么安装什么!
构建项目:git权限验证,配置好全局用户的公钥私钥,测试能否构建成功等等。
具体的使用方法可以查看官方文档。
4.maven
4.1.CentOS Linux release 7.4.1708系统安装使用maven
这里需要注意下面的地址可能已经失效,具体地址可登录清华大学的tuna源站查看!或者自己去网上找一找!
1.获取压缩包
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
2.解压
tar -zvxf apache-maven-3.5.3-bin.tar.gz
mv apache-maven-3.5.3 /usr/local/
ln -s /usr/local/apache-maven-3.5.3/ /usr/local/maven
3.查看版本
[root@VM_1_3_centos ~]# /usr/local/maven/bin/mvn -v
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_161, vendor: Oracle Corporation
Java home: /usr/local/jdk1.8.0_161/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-642.6.2.el6.x86_64", arch: "amd64", family: "unix"
4.设置环境变量
vim /etc/profile
export M2_HOME=/usr/local/maven
export PATH=${M2_HOME}/bin:$PATH
$source /etc/profile
4.2.使用
具体的使用可以查看官方文档
5.sonar
5.1.CentOS Linux release 7.4.1708系统安装使用sonar
1.从官网下载源码包上传到服务器
unzip sonarqube-5.6.zip
mv sonarqube-5.6 /usr/local/
ln -s /usr/local/sonarqube-5.6/ /usr/local/sonarqube
2.进行数据库操作
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar@pw';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar@pw';
mysql> FLUSH PRIVILEGES;
3.修改配置文件
vim sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar@pw
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&character Encoding=utf8&rewriteBatchedStateme
4.启动
/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start
然后就可以登录验证了!
总结下,这边文章很简单,同时省略了这些工具很多具体的使用方法!其实主要为了告诉大家做运维遇到任何工具使用上的问题,都应该优先去查阅官方文档!
Centos7.4简单安装使用gitlab+maven+jenkins实现java代码的持续集成部署的更多相关文章
- Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成——部署方案优化
Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成--部署方案优化 之前我们做的方案部署都是只能选择一个微服务部署并只有一台生产服务器,每个微服务只有一个 ...
- 【转载】Maven安装配置+ GIt&SVN + Jenkins详细配置 软件项目管理 持续集成实验
原文地址: https://www.cnblogs.com/clownice/p/5395933.html 以下是学习笔记: Jenkins是一款开源持续集成的软件,实现集成的自动化 自动构建工具:M ...
- [C#]使用 Jenkins 为 .Net Core 实现持续集成/部署
在前后端分离开发的项目当中为了避免重复构建发布,我们需要部署一个持续发布环境,而目前的开发环境服务器都是基于 CentOS 的,因此每次在本地发布之后还需要打包,上传,部署,十分繁琐.故这里采用了比较 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...
- Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一) 2015-01-14 20:28 by 飘扬的红领巾, 4322 阅读, 5 评论, 收藏, 编辑 ...
- 构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境
构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境 整个环境的结构图. 一.准备工作 gitlab和harbor我是安装在kubernetes集群外 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
前言 上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...
- Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...
- Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上)
Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上) Jenkins+Docker+SpringCloud持续集成流程说明 大致流程说明: 1) 开发 ...
随机推荐
- 网页里面出现"$#2342"类似这样 应该怎么转义过来?
Python2 from HTMLParser import HTMLParser print HTMLParser().unescape('【竞彩足球')
- ICC Scenario Definition
现代先进工艺下的后端设计都是在 MCMM 情况下设计的,所谓 MCMM 就是 muti-corner muti-mode,用于芯片的不同工作模式和工作条件. 后端设计过程中,需要保证芯片在所有工作模 ...
- [教程] 【【【【odex教程之jar】】】】/system/framework里面的jar做odex g13
dexopt-wrapper core.jar core.odex dexopt-wrapper ext.jar ext.odex dexopt-wrapper framework.jar frame ...
- js面向对象案例 贪吃蛇
食物对象 (function () { //map:所在的父盒子,obj自身的一些属都具有默认值 function Food(map, obj) { obj = obj || {}; //没有则使用默 ...
- 关于postgresql触发器的总结(lab作业系列)
上题: In this tutorial you will create a stored procedure and triggers to check a complex constraint. ...
- java程序性能优化读书笔记-垃圾回收
衡量系统性能的点 执行速度:即响应时间 内存分配:内存分配是否合理,是否过多消耗内存或者存在内存泄露 启动时间:程序从启动到正常处理业务需要的时间 负载承受能力:当系统压力上升,系统执行速度和响应时间 ...
- GDC快讯,腾讯CMatrix布局云游戏B端领域
2019年3月20日-22日, GDC游戏开发者大会(Game Developers Conference,以下简称GDC)于旧金山召开.每年的GDC大会上,来自世界各地,数以万计的游戏开发者们都会分 ...
- 【前端模板之路】一、重构的兄弟说:我才不想看你的代码!把HTML给我交出来!
写在前面 随着前端领域的发展和社会化分工的需要,继前端攻城湿之后,又一重要岗位横空出世——重构攻城湿!所谓的重构攻城湿,他们的一大特点之一,就是精通CSS配置文件的编写...前端攻城湿跟重构攻城湿是一 ...
- 我在华为,软件测试人员在工作中如何运用Linux?
从事过软件测试的小伙们就会明白会使用Linux是多么重要的一件事,工作时需要用到,面试时会被问到,简历中需要写到.对于软件测试人员来说,不需要你多么熟练使用Linux所有命令,也不需要你对Linux系 ...
- redmine on centos
一 前言 前前后后搭建redmine,花费了很多时间.期间会遇到各种坑,因此总结下自己的方法,分享给各位童鞋. 二 操作系统 centos release 6.9 详细信息如下图: 三 安装步骤 ...