Jenkins+gitlab 自动化构建部署maven项目

1 安装gitlab

环境准备:2g以上内存的服务器(我个人是用电脑开的虚拟机,centos 7 64 位)

如果该台服务器上已经安装过gitlab,如果需要重新装,请卸载之前的gitlab。

完全卸载gitlab的方法如下:

首先查看gitlab的进程,如果有gitlab的进程,说明该服务器上之前安装过gitlab,这时我们想要重新安装gitlab,首先需要将gitlab进行完全的卸载。

ps aux | grep gitlab

以下是gitlab的卸载流程:

停止gitlab

 gitlab-ctl stop

卸载gitlab

rpm -e gitlab-ce

查看gitlab进程

ps aux | grep gitlab


可能会出现很多进程,如上图所示,我们需要将第一个进程给kill掉

kill -9 进程号

杀掉第一个进程(就是带有好多…的进程)。杀掉后,在ps aux | grep gitlab确认一遍,还有没有gitlab的进程。若还存在,可以把它的主要组件的进程也杀一边。(日志的进程不用管)

删除所有包含gitlab文件

find / -name gitlab | xargs rm -rf

当然若你没有全杀权限。那么可以可以把这三个目录给干掉也可以:

rm -rf /opt/gitlab

rm -rf /etc/gitlab

rm -rf /var/log/gitlab

以上就是完全卸载gitlab的教程。接下来开始安装gitlab。

安装镜像文件准备:gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm(附下载链接:gitlab资源下载链接

将下载好的资源文件上传到服务器上,并且开始安装gitlab

进入gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm所在的文件夹执行以下命令

rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm


出现以上截图,证明安装成功!

安装成功后需要对gitlab进行相关配置的修改!

2 配置gitlab

修改gitlab的ip与端口号,使用如下命令:

vi  /etc/gitlab/gitlab.rb


然后退出编辑模式,保存退出!

修改完后需要重新加载配置文件

gitlab-ctl reconfigure

重新加载配置文件需要的时间可能较长,耐心等待!

加载完毕后,需要重新启动gitlab

gitlab-ctl restart

3 访问gitlab

通过刚配置的ip+端口号进行访问

注意:这里可能无法访问,这时候我们需要将我们设定的端口号开放并且重启防火墙

firewall-cmd --add-port=9000/tcp --zone=public--permanent

firewall-cmd –reload

这时候就可以正常访问gitlab了!

第一次访问gitlab需要更改密码,跟着提示完成密码的更改,然后登录gitlab。


随后我们新建一个项目工程。

新建完毕后我们需要去配置ssh key 进行连接gitlab。

打开本地git bash,使用如下命令生成ssh公钥和私钥对


ssh-keygen -t rsa -C 'xxx@xxx.com' 

然后一路回车(-C 参数是你的邮箱地址)


然后去自己本地文件夹下(C:\Users\Administrator\.ssh)我的生成的密钥在这里。

如下图所示,讲公钥里面的内容复制到剪切板中

打开gitlab,选择SSH Keys 将刚复制出来的key粘贴进keys里面,定义一个名称,点击Add Key

即完成ssh key的设置


以上gitlab基本配置完成!



安装jenkins

安装jenkins的前提准备

我们需要安装JDK、tomcat、maven

由于jdk、tomcat、maven的安装挺简单的,这里不再展示安装教程。

假设我们jdk、tomcat、maven都已经安装完成了。接下来我们需要配置环境变量

使用这个命令进行编辑环境变量

vi  /etc/profile.d/jenkins_tools.sh

将下列内容粘贴到jebkins_tools.sh中(根据自己的jdk和maven安装路径进行相应的修改)

#jdk

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

export TIME_STYLE='+%Y/%m/%d %H:%M:%S'

#maven

export MAVEN_HOME=/usr/local/maven/apache-maven-3.3.9

export PATH=${MAVEN_HOME}/bin:$PATH

然后使用命令检测maven、jdk是否安装成功!

java -version

mvn -version

如果能看到jdk、maven的版本号信息,则代表已经安装成功!

准备工作已经完毕,接下来开始安装jenkins了!

导入镜像:sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo--2019-12-24 17:59:44--  https://pkg.jenkins.io/redhat-stable/jenkins.repo


导入公钥:sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key


安装jenkins:  yum install jenkins


出现以上截图,代表jenkins已经安装完成!

修改配置文件: vi /etc/sysconfig/jenkins

修改 jenkins 的端口号,端口号自己定义,只要不冲突就行!


修改完毕后,开启启动jenkins。

启动jenkins:systemctl  start  jenkins

这时候通过 ip+端口号访问jenkins

注意:这里有可能访问不了,可能是端口号没有开放,端口开放参考上面的gitlab的端口开放!

一开始会有一些插件的安装,我就选择推荐的插件,然后等待安装完成即可!



jenkins配置



完成上述配置后,保存即可!

全局属性配置

构建一个maven工程

完毕后开始进行工程配置

将上面的id_rsa文件里面的内容复制到key里面,这三个文件我是通过git bash ,将gitlab上的项目clone下来后,通过生成命令生成密钥,其中id_rsa是密钥,rd_rsa.pub是公钥,公钥用于在gitlab上的配置。

 WAR/EAR files:输入war包的相对路径,如我的war包在新建目录的target下

context path:输入部署tomcat的名称,就部署在webapps下的目录名

add container:增加容器,一般选tomcat8X就可以。这里的username与password需要到tomcat的conf文件夹中的tomcat-users.xml修改。tomcat

URL就是你希望把war包部署到的tomcat所在IP地址。

tomcat-users.xml中的用户名及密码默认是注释掉的,所以需要修改,也可以直接复制以下代码到</tomcat-users>之前。

<role rolename="tomcat"/> 

<role rolename="role1"/> 

<role rolename="manager-gui" /> 

<role rolename="manager-script" /> 

<role rolename="manager-status" /> 

<user username="tomcat" password="tomcat" roles="tomcat"/> 

<user username="both" password="tomcat" roles="tomcat,role1"/> 

<user username="role1" password="tomcat" roles="role1"/> 

<user username="deploy" password="tomcat" roles="manager-gui,manager-script,manager-status" />

 然后到tomcat下面webapps/manager/META-INF/context.xml 注销掉红色部分。因为默认tomcat不可以通过外部ip访问管理界面。一定要启动Tomcat,不然等构建等时候会报拒绝连接

 <Context antiResourceLocking="false" privileged="true" > 

<!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />--> 

<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/></Context>



关于gitlab的配置

出现状态为200即为表示成功,如果为404.403状态码,请检查一下url是否正确。

按照以上构建,出现构建成功则可以完成maven项目的部署!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容