jenkins+Gitlab+maven+tomcat实现自动化集成、打包、部署。

为什么需要持续集成呢?

1.因为在开发的过程中,用于阶段性地构建出产品。
这样可以更加清楚地审视产品的不足之处。
2.由于在某些情况下,例如有紧急bug的时候,研发的版本更新可能很频繁,
部署持续集成环境,可以减少每次部署所花费的时间。
化整为零:
1.这套组合可以分成源码管理、编译构建、远程部署
2.源码管理常见的有gitlab、SVN
3.编译构建是针对编译型语言的。
此处针对Java语言使用Maven、针对IOS则是使用其他编译工具。
4.远程部署由jenkins提供。

基础环境
192.168.254.134 Maven-3.5.4、Jenkins-2.133、Git-2.12.0、JDK1.8
192.168.254.135 Gitlab-11.0.4
192.168.254.131 tomcat9.0.10

安装Gitlab
Gitlab的作用:作为源码管理的角色。
Gitlab实际上是整合了nginx、git等多种软件提供了一个可视化的界面。
包含git命令的基本功能,但相比于git命令更加简单易用。

GitLab的安装及使用教程
https://www.cnblogs.com/weifeng1463/p/7714492.html

信任 GitLab 的 GPG 公钥:
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null

配置yum源
vim /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=https://packages.gitlab.com/gpg.key

安装gitlab和必要的依赖
yum makecache
yum install gitlab-ce
yum install curl policycoreutils openssh-server openssh-clients
systemctl enable sshd
systemctl start sshd
yum install postfix
systemctl enable postfix
systemctl start postfix

初始化gitlab
gitlab-ctl reconfigure
有时候,像上面步骤修改了GitLab的ip地址一样,临时修改了GitLab的配置之后,得执行如下的命令,应用重新配好的配置并重启GitLab,然后查看GitLab的状态
gitlab-ctl reconfigure
gitlab-ctl retart
gitlab-ctl status
gitlab-ctl tail

找到应该访问的地址
vim /etc/gitlab/gitlab.rb
external_url ‘http://node.abc.com
注意:需要解析域名
正常访问页面:

安装maven
Maven的作用:Maven负责java语言的编译和打包。
换个角度来说,Maven相当于Java中的make命令。
同类型的工具有Ant,但是Ant不提供解决依赖关系的功能
获取安装包:镜像。
https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
解压tar包
tar -zxf apache-maven-3.5.4-bin.tar.gz -C /usr/local/
cd /usr/local/
mv apache-maven-3.5.4 maven
定义变量,输出执行路径
vim /etc/profile 在最后面添加
export M2_HOME=/usr/local/maven
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$M2_HOME/bin:$PATH
source /etc/profile
测试能否正常运行
mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_171, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.3.3.el7.x86_64", arch: "amd64", family: "unix"

安装jenkins
Jenkins的功能:
1.通过git命令从Gitlab中拉取源码
2.让maven进行编译并打包
3.把打好的包发送到目标主机
4.执行部署脚本。

之前有安装过 http://blog.51cto.com/10158955/2146748
#安装方式有多种,包括rpm、war包启动、dockerfile。

编译安装新版的git
注意:Maven、Git、JDK都是安装到jenkins服务器。
在往后的设置中,需要在jenkins中指定他们的路径。

获取源码包
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.18.0.tar.gz
注意:为了能让jenkins能正常从gitlab中拉取源码,需要编译1.9以上的版本。
git构建时,需要的环境
yum groupinstall "Development Tools"
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker openssh-clients
除了正常的编译环境之外,编译git的时候还要额外安装各种devel包。否则会构建失败。

编译并安装,同时输出执行路径到环境变量中:
make prefix=/usr/local/git all
make prefix=/usr/local/git install
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc

验证能否正常运行:
git --version
git version 2.18.0

在jenkins上完成配置
指定Maven、Git、JDK的安装路径



为Jenkins安装配件:

需要安装的插件:
Gitlab Plugin
#安装之后才可以在系统配置中指定gitlab的IP地址
Git Plugin
Git Client Plugin
#用于jenkins在gitlab中拉取源码
Publish Over SSH
#用于通过ssh部署应用
Maven Integration plugin
#用于新建maven项目
注意 : 安装了插件之后,在全局配置才能详细配置。

配置相关选项

配置Gitlab的地址,红字表示需要Gitlab的账号密码,但是这个可以在新建项目的时候指定。

Publish_over_SSH插件,可以使用Path to key指定jenkins主机的私钥路径,也可以如上。 注意:部署应用的主机需要jenkins主机的公钥,可以ssh-copy-id命令复制过去。

配置需要部署应用的主机的IP地址及相关信息测试是否可以连接

在jenkins上新建项目
注意:安装了Maven Integration plugin才可以创建maven项目

之后到里面配置

原文地址:http://blog.51cto.com/10158955/2147872

时间: 2024-07-31 11:12:11

jenkins+Gitlab+maven+tomcat实现自动化集成、打包、部署。的相关文章

Jenkins+SVN+maven+Tomcat构建自动化集成任务

安装Jenkins方法详解:https://www.cnblogs.com/lizhe860/p/9901257.html 一.安装maven插件 1.依次进入系统管理→插件管理→可选插件, 找到Maven Integration,并勾选,点击立即安装. 2.点击[新建任务],会发现多了一个选项,如下图. 二.全局工具配置 1.配置jdk 2.配置maven 三.新建maven项目 1.选择[构建一个maven项目] 2.配置SVN 3.构建触发器定时 Poll SCM(代码有更新时触发). B

jenkins+gitlab+maven+tomcat持续集成环境安装配置

jenkins+gitlab+maven+tomcat,该环境主要实现自动构建部署java web应用. 其工作流程是:提交代码到gitlab--jenkins触发构建任务--maven编译打包--jenkins将war包部署到tomcat. 安装JDK #安装jdk1.8 tar zxvf jdk-8u77-linux-x64.gz #设置环境变量 #vi /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0_77 export JAVA_BIN=

Jenkins + Git + Maven + tomcat集成环境搭建

折腾了好几天,终于吧Jenkins + Git + Maven + tomcat集成环境搭建起来了,最终主要实现"自动构建.部署"web应用. 1.安装环境 操作系统:Centos 6.5 JDK:1.7.x Maven:3.1.x Git: 1.7.1,自建GitLab平台 tomcat:7.x 上述宿主机器2台:192.168.1.194,192,168.1.198,其中194位Jenkins Master,198位slave. 2.第三方安装安装和环境配置 JDK.Git.Mav

jenkins+gitlab+maven+docker部署项目之jenkins用户权限管理

一.用户管理 jenkins自身带有权限管理,入口:系统管理-->全局安全配置,这里的权限配置太过简略,没有角色的概念,显然无法满足我们复杂的需求,所以在这个时候引入了 Jenkins 的一个插件:Role-based Authorization Strategy 安装插件:Role-based Authorization Strategy,插件管理-->可选插件搜索一下点击安装,安装完后重启就可以使用该插件 系统管理-->全局安全配置,然后用重新登录一下 系统管理-->Manag

Docker微服务-Jenkins+Gitlab+Maven+Shell自动化构建实施案例

* 环境:CentOS7代码仓库:Gitlab持续集成代码更新:Jenkins构建打包:Maven镜像自动交付脚本:Shell 基础环境软件安装:Gitlab.Jenkins.Maven配置,安装参考网上,这里安装略,重点介绍项目持续集成和镜像交付.结合上一博文:https://blog.51cto.com/10874766/2353577这里配置了两个基础服务容器的自动化构建,一个常规业务服务容器的自动化构建,其他的容器服务持续集成类似操作,这不做重复操作. * 创建基础持续集成项目-conf

jenkins + svn + maven + tomcat 持续集成引擎

Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎. 通俗的来讲,jenkins就是一个可以实现自动化部署的一个插件, 对于我来说,也是应用在系统部署上. 废话不多说,直接进入我们的安装步骤吧 1.安装JDK,maven环境搭建 因为考虑到jenkins的实际应用场景,我们需要把这些基础环境先安装完成. jdk安装比较简单不做赘述,maven环境借用了osc其他大侠的博客内容, 试了下安装成功. maven官网下载安装包:http://maven.apache.org/downl

Docker环境搭建Jenkins+gitlab+maven自动打包 部署容器

宿主机安装docker(省略) 宿主机安装maven 下载二进制包解压到/var/docker_data/jenkins/jenkins_home下面 https://maven.apache.org/download.cgi Jenkins镜像安装 下载Jenkins镜像(一般都是Ubuntu版) FROM jenkins USER root #清除了基础镜像设置的源,切换成腾讯云的jessie源 #使用非腾讯云环境的需要将 tencentyun 改为 aliyun RUN echo '' >

项目持续集成环境(jenkins + SVN + maven + tomcat)

整体流程 每次SVN上代码有变动,触发自动构建动作,并部署到服务器的tomcat上,具体流程: 1.SVN上提交代码修改 2.maven执行Goals 3.将web工程打成war包 4.关闭服务器的tomcat,拷贝war包到服务器tomcat的webapps目录,启动tomcat 项目相关配置 因为我们使用的是maven工程,所以配置下pom.xml就可以啦,重点关注build的配置,如下: <build> <finalName>dss</finalName> <

jenkins maven tomcat做持续集成

maven 采用 maven 3.0以上的版本.tomcat 采用 tomcat 7.0 以上的版本 1. tomcat 配置用户账号和权限 tomcat-users.xml ? 1 2 3 4 5 <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role ro