Jenkins+tomcat+maven+git搭建自动化部署环境
Jenkins+tomcat+maven+git 远程自动化部署【真实环境需要4台机器,3台服务器,一台模拟开发开发代码的主机】Jenkins服务器IP:10.132.20.10Git服务器IP:10.132.20.104远程tomcat服务器IP:10.132.20.15【我这里是桥接的自己的真机,所以都在一个网段】开始吧!一、准备工作需要的包有哪些,先看看...
Jenkins+tomcat+maven+git 远程自动化部署
【真实环境需要4台机器,3台服务器,一台模拟开发开发代码的主机】
Jenkins服务器IP:10.132.20.10
Git服务器IP:10.132.20.104
远程tomcat服务器IP:10.132.20.15
【我这里是桥接的自己的真机,所以都在一个网段】
开始吧!
一、准备工作
- 需要的包有哪些,先看看
- Jenkins要和tomcat、git服务器相通,模拟开发的机器当然要和git服务器相通,这个可以自己去设置,防火墙什么的要注意
【注:这里防火墙真实环境不建议关闭,可以开启你需要的那个端口即可】
如下:
firewall-cmd --zone=public --add-port=8899/tcp –permanent
firewall-cmd –reload
firewall-cmd --zone=public --query-port=8899/tcp
二、安装jdk
1、都要有jdk才行,我放的目录是/usr/bin
解压:tar zxvf jdk-…..tar.gz
设置环境变量:编辑/etc/profile文件
之后要:source /etc/profile ,使环境变量生效
三、Jenkins服务器
1、Jenkins服务器如果和tomcat是分开部署的,那么没必要在这台机器上再部署tomcat了,直接下载个jenkins的rpm包用rpm格式安装
(1)、rpm -ivh jenkins-2.7.1-1.1.noarch.rpm
(2)、修改配置文件:sudo vim /etc/sysconfig/Jenkins
JENKINS_HOME="/root/.jenkins"(我将主目录修改在之前安装的目录中)
JENKINS_USER="root"
JENKINS_PORT="9161"
(3)、启动Jenkins:
Sudo Service Jenkins start
若出现启动失败:Vim /etc/init.d/Jenkins
****添加的是你本台机器上的Jdk的位置*****
打开HTTP://10.132.20.100:8899 即可访问Jenkins
然后安装Jenkins【我这里原来出现了offline的情况,Jenkins是可以连接上外网的,可就是加载不了插件,结果后面解决了,应该是目录混了机器找不到的问题,后来重新装了一遍就行了】
2、接下来安装git
解压,然后进入git主目录,先查看哈里面的INSTALL或者README文件,里面查看是那种编译安装方法,我用的是:
$ make configure ;# as yourself
$ ./configure --prefix=/usr ;# as yourself
$ make all doc ;# as yourself
# make install install-doc install-html; # as root **用root用户操作
【如果提示没有命令,在网上搜一下,安装好命令】
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
接下来配置环境变量,上面已经贴上了。【记得编辑完后要source】
接下来检验下:git –version
3、安装maven
下载,解压,tar zxvf apa…-maven-..tar.gz
然后配置环境变量,也在上面
用mvn –version查看是否成功
4、安装必要的插件在,jenkins上
如GIT plugin 、Deploy to container Plugin、Maven Integration【装了在创建项目的时候,才有‘创建一个maven项目’】
还有一些自己看着装,网上也有教程
接下来配置JDK 、GIT、maven的路径
在系统管理–>Global Tool Configuration下
还有Jenkins Location,填一下
接下来,注册个用户admin
退出,再登的时候,右上角点击注册,再登陆这个账号
5、查看机器上有没有SSH服务,远程操作免密登陆,如果有的话就不用安装了
rpm -qa | grep ssh 【查看是否有ssh】
若没有:yum install openssh-server
service sshd start
创建一个用户fll,【在需要远程的机器上也创建个用户,名字最好相同,设置密码(一定要)】切换到用户fll然后,
ssh-keygen –t rsa,一路回车,表示,不设置密码 【window机器命令相同】
ssh-copy-id 远程用户@远程服务器的域名或者IP
这个在后面Jenkins上远程git和tomcat有用
四、安装gitlab
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
新建 /etc/yum.repos.d/gitlab-ce.repo,内容为
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
sudo yum makecache //把镜像从网上下载下来缓存到本地
sudo yum install gitlab-ce
修改gitlab的访问端口:编辑/etc/gitlab/gitlab.rb文件
一下是我这个文件的修改情况:
启动关闭gitlab:sudo gitlab-ctl start/stop/restart
接下来试着访问gitlab:http://10.132.20.104:11000/
创建用户,要记住你创建的账号密码,后面有用。创建一个仓库,像这样
五、在模拟的开发主机上
1、创建一个maven项目。
先下载Windows的maven包,解压,然后,添加环境变量MAVEN_HOME和path就行,
照着网上的教程新建一个maven项目,里面随便添加一些包和class文件(最重要的是里面自带的pom文件)
2、为了可以免密码登陆到gitlab上,所以要在开发主机的命令行生成SSH【检验是否成功,在你的当前用户根目录下的.ssh文件夹下查看是否存在密钥和公钥文件】,打开公钥文件复制
打开你的gitlab,settings里面有个SSH keys,添加,并且把公钥复制进去
3、下载git,Windows版
下载好后,在所有程序找到GIT,然后打开git bash,切换目录到你项目的跟目录下。
1)第一个需要配置的就是用户的用户名和email,因为这些内容会出现在你的每一个提交(commit)里面的
$ git config --global user.name "your name"
$ git config --global user.email "your_email"
例如:“t_full@channelsoft”就是你注册在gitlab上的那个邮箱
<3>输入git init
<4>输入git remote add origin
你刚才建立的项目连接
<5>输入git add .
<6>输入git commit
–m ‘over’
<7>输入git config http.postBuffer 524288000
(特别提醒: 此行是在本地设置缓存, 有些项目文件较大, 使用http无法上传,可设置此命令)
<8>输入git push -u origin master
将代码推送到gitlab端
【git status查看当前上传状态】
【更加详细的上传操作,参照:
http://blog.163.com/wujiaxing009@126/blog/static/7198839920176275715927/
】
这时,你在你的gitlab上可以看到你的maven项目了。
接下来在Jenkins上创建一个maven项目,试一下:
1、URL那里填,你项目的地址,直接复制过来;
Credentials那里,要退出去,在首页的Credentials那里ADD一个登陆gitlab的凭证:
然后,你就可以在那个位置添加你的凭证了。
【另一种方法在文章最后有介绍】
接下来就是构建触发器,详细的自己去理解很简单,这里我写的是:
然后是build,maven要执行的操作
这里的Pom文件就相当于,ant里面的build.xml文件
下面那个是mvn的命令,详细的自己去找
接下来是,构建后操作:
我打的war包的名字是quit.war,在项目根目录下的target目录下,所以这里这么填。
下面那个是执行的shell语句
哦哦还忘了个事情就是还没模拟远程tomcat。
六、tomcat服务器
1、下载tomcat的包,解压,记得要配置jdk
配置tomcat的端口,不细说了,
七、jenkins上的ssh
接下来就是在Jenkins上用root创建个SSH,方法和之前说的一样,
然后再Jenkins界面上的系统配置中:
密码那里如果没有密码,则为空,有的话就填进去;下面那个是私钥的地址和内容
接着,回到你刚才没建完的maven项目,name那里就选择你才创建的那个名字。
最后在Jenkins上运行,结果为成功,代表可以了
结束。
以下是我最后出现的错误的解决方法:
打好包之后,无法将包发到远程tomcat上:
解决思路:
在Jenkins上用root账号,生成密钥,发到远程tomcat。在系统设置里面配置publish over ssh,填好刚才的私钥。
再添加-构建后操作,
出现错误:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
在tomcat服务器上编辑文件/usr/local/tomcat/bin/catalina.sh
解决思路:
正文前添加:
export JAVA_HOME=/usr/local/jdk1.8.0_151
export JRE_HOME=/usr/local/jdk1.8.0_151/jre
【你这里填的应该是,你的tomcat的jdk目录,不要填错】
问题1:
前面在连接gitlab的时候,用git开头的那个不行,只能用http
解决方法:
在Jenkins访问git的那个用户的SSH的私钥,复制到Jenkins上的Credentials 上,选择有SSH的那个:
还有权限问题:将仓库的权限改成777,这样这个仓库对fll005这个用户才不是只读的。
【
首先了解,在gitlab上创建的仓库,在git上的位置在哪里:
/var/opt/gitlab/git-data/ 【目录下会有你创建的所有仓库以及项目】
把权限改成777。
】
更多推荐
所有评论(0)