Jenkins+gitlab 自动化构建部署maven项目
Posted 测试baby
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中的用户名及密码默认是注释掉的,所以需要修改,也可以直接复制以下代码到之前。
<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项目的部署!
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你
关注我的微信公众号【伤心的辣条】免费获取~
送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
我的学习交流群:902061117 群里有技术大牛一起交流分享~
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
好文推荐:
以上是关于Jenkins+gitlab 自动化构建部署maven项目的主要内容,如果未能解决你的问题,请参考以下文章
Docker+Harbor+Jenkins+Gitlab自动化CICD构建