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

  1. 安装jenkins的插件;

Subversion Plug-in 这是svn库的插件

Deploy to container Plugin 这是远程部署的插件

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

  1. 进行配置

我们一条一条过

这里的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日

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐