jenkins+Svn+Tomcat远程热部署
三台linux操作系统(Centos7)所有电脑关闭防火墙和安全linux1.svn库2.Jenkins3.Tomcat。
1.环境准备
三台linux操作系统(Centos7)所有电脑关闭防火墙和安全linux
1.svn库
2.Jenkins
3.Tomcat
2.安装svn
#yum安装 yum -y install subversion mkdir -p /var/svn/ svnadmin create /var/svn/lx #库名字可以随意
配置svn用户密码
cd /var/svn/ssj/conf vim passwd #在末尾加入参照上面格式 ssj = 123123
权限控制authz配置
#设置[/]代表根目录下所有的资源 或者写成[lx:/] [/] ssj = rw * = #以上是ssj用户有读写权限,其他所有人无权限
编辑主配置文件
#匿名访问的权限,可以是read,write,none,默认为read anon-access=none #使授权用户有写权限 auth-access=write #密码数据库的路径 password-db=passwd #访问控制文件 authz-db=authz #以上需要取消注释,anon-access需要改为none
启动和访问svn
#访问 svnserve -d -r /var/svn #默认启动端口是3690 #--listen-port=3690 可以指定其他端口运行 #访问 svn://$IP:3690/lx/ #输入之前设置的用户名和密码,这样不支持http访问,支持TortoiseSVN #如果想要使用http页面访问,请看iF-SVNadmin部署文档
3.安装jenkins
首先为了后面自动化部署做打算,需要提前安装环境
Maven
JDK1.8
Tomcat(我是基于Tomcat搭建的jenkins)
安装maven
#获取安装包(特别慢,同级文件夹有安装包) wget https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz #如果证书错误就加上下面这个 --no-check-certificate #解压 tar -xf apache-maven-3.8.5-bin.tar.gz #创建工作目录 mkdir /usr/local/maven-3.8.5 mv apache-maven-3.8.5/* /usr/local/maven-3.8.5 #设置环境变量 vim /etc/profile export MAVEN_HOME=/usr/local/maven-3.8.5 export PATH=$PATH:$MAVEN_HOME/bin source /etc/profile mvn -v #能看到版本号就是安装成功了
安装jdk-1.8
#上传压缩包(文档同级目录有) jdk-8u144-linux-x64.tar.gz #解压 tar xf jdk-8u144-linux-x64.tar.gz #创建工作目录 mkdir /usr/local/java mv jdk1.8.0_144/* /usr/local/java #设置环境变量 vim /etc/profile export JAVA_HOME=/usr/local/java export JRE_HOME=/usr/local/java/jre export PATH=$PATH:/usr/local/java/bin export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib source /etc/profile java -version #能看到版本号就是安装成功了
安装jenkins
#上传Tomcat压缩包和Jenkins的war包 Jenkins.war apache-tomcat-8.5.23.tar.gz #解压Tomcat压缩包 tar xf apache-tomcat-8.5.23.tar.gz #创建工作目录 cp -r apache-tomcat-8.5.23 /usr/local/tomcat8 #设置环境变量 ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown #把Jenkins的war传输吃tomcat的工作区域 mv Jenkins.war /usr/local/tomcat8/webapps/ tomcatup netstat -anpt | grep 8080 #访问 $IP:8080/Jenkins
4.安装Tomcat
#Tomcat需要依赖jdk tar xf apache-tomcat-8.5.23.tar.gz tar xf jdk-8u144-linux-x64.tar.gz cp -rv jdk1.8.0_144/ /usr/local/java vi /etc/profile //在文件末尾新增 export JAVA_HOME=/usr/local/java export JRE_HOME=/usr/local/java/jre export PATH=$PATH:/usr/local/java/bin export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib source /etc/profile java -version java version "1.8.0_144" --------------以上是搭建JAVA环境--------- cp -r apache-tomcat-8.5.23 /usr/local/tomcat8 ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown tomcatup netstat -anpt | grep 8080
配置远程热部署的用户
vim /usr/local/tomcat8/conf/tomcat-users.xml #插入在<tomcat-users>里 <tomcat-users> <role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="admin"/> <role rolename="admin-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="123123" roles="admin-gui,admin,manager-gui,manager,manager-script,manager-jmx,manager-status"/> </tomcat-users> #重启Tomcat服务器 访问http://$IP:8080/manager/html 输入上面设置的用户和密码 admin/123123
#如果访问是403报错的话 1. 进入tomcat目录下 2. vim webapps/manager/META-INF/context.xml 3. 找到如下代码并注释:<!-- --> (注意后面也要加上) <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
接下来是去访问jenkins的图形化进行操作
1.配置jenkins的环境变量
这里就配置两个JDK和MAVEN
别名设置可以随便,路径就写jenkins里的java路径
这是maven
- 安装jenkins的插件;
Subversion Plug-in 这是svn库的插件
Deploy to container Plugin 这是远程部署的插件

搜索以上两个插件进行安装
- 进行配置



我们一条一条过

这里的url是你svn创建的代码库
用户和密码是svn的passwd里定义的
构建

选择maven来打包

配置好之前设置的maven的环境变量
构建后操作


这个是jenkins的mavne打包后的包名字
注意:这里是已jenkins项目创建名为根目录的,写上相对路径就行了;如果不知道自己的包叫上面 名字的话,这一步就先不做,直接去jenkins服务器上看/root/.jenkins/workspace/test/target


下面这个可以理解为传输到服务器给你换一个名字去访问
不然太长了,可以自己自定义

添加部署服务的Tomcat服务器

Tomcat服务器版本是多少就选择多少
这里的用户和密码是在Tomcat里定义的,tomcat-users.xml里的


Tomcat URL就是tomcat的地址和端口,自动给你发布至webapps下

直接build now 就行了
去看控制台输出看到success就行了
在去tomcat服务器webapps下看有没有这个包,再访问一下就行了
以下是svn配置钩子来实现提交代码后就自动打包上传war包

这里要填写一个身份令牌,他会生成一个url,你去访问这个url就是自动触发进行打包部署
JENKINS_URL/job/999/build?token=TOKEN_NAME
JENKINS_URL=jenkins的ip和端口
TOKEN_NAME=就是你填写的身份验证令牌
我生成的是:
http://192.168.3.81:8080/Jenkins/job/999/build?token=123
接下来就是svn的钩子,删除和上传大小是用pre-commit
我们这次使用post-commit
登录svn服务器
cd /var/svn/lx/hooks
cp post-commit.tmpl post-commit
我们只需要用到一个命令
curl -X post -v -u admin:26d5ce74d9024844b49ad6ff78667365 http://192.168.3.81:8080/Jenkins/job/999/build?token=123
解释:
curl 访问网址 -X指定访问方式是post
-v 固定参数
-u 用户名:密码 我这里用的是admin,密码是
/root/.jenkins/secrets/initialAdminPassword
密码在这个里面
后面跟之前的网址就行了
测试:
我们使用svn更新一下项目上传,他可以自动去svn上拉取代码到Jenkins服务器workspace,再使用maven进行打包,通过jenkins的Deploy to container Plugin插件发布到设定好的服务器上

后面加上@HEAD可以每次都拉去最新的
###创作于2022年5月9日
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)