jenkins配置svn提交一键自动部署

1.安装JDK
2.安装maven

  Linux安装配置Maven
    1)下载Mavenhttp://maven.apache.org/download.cgi
    2)在/usr/local下创建文件maven
    3)解压Maven 到 /usr/local/maven 文件夹
    4)修改Maven本地仓库地址 vim conf/setting.xml
    5)修改Maven远程仓库地址为阿里云 (下载快)
    6)vim 进入配置环境编辑  vim etc/profile 
    export MAVEN_HOME=/usr/local/maven/apache-maven-3.5.0
    export PATH=${PATH}:${MAVEN_HOME}/bin
    7)查看Maven环境变量是否生效和安装 mvn -v echo $MAVEN_HOME

3.安装tomcat

1)在server.xml 配置utf-8编码
    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" URIEncoding="UTF-8"/>    
   2)配置tomcat账号密码
        vim ../conf/tomcat-users.xml
        <role rolename="manager-gui"/>
         <role rolename="manager-script"/>
        <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>

   3)修改/usr/local/apache-tomcat-9.0.0.M26/webapps/manager/META-INF  context.xml
        注释掉value标签
        
   4)在bin 启动tomcat ./startup.sh
   
   5)ip:端口 访问 点击页面的Manager App 输入配置好的账号tomcat 密码tomcat

4. 安装svn

Jenkins安装配置
Jenkins 下载地址https://updates.jenkins-ci.org/download/war/
将war部署在tomcat上启动tomcat
访问 http://ip:8080/jenkins/
刚进来看到的页面
account:admin
password:

1)解锁 Jenkins
    cat /usr/local/apache-tomcat-9.0.0.M26/webapps/secrets/initialAdminPassword
    获取密码 :e033f0340e844c3b9b5516fb18d1e77a908

登陆等待插件安装…

将镜像换为国内的镜像,操作步骤:

http://ip:8080/jenkins/pluginManager/advanced  升级站点URL:	https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json


配置svn提交自动化部署:(3大步 步骤1.构建项目 步骤2.构建完成配置sh文件自动运行 步骤3.配置否见触发器,用户提交svn自动触发前两步骤)
进入jenkins 构建一个maven项目

  • 1.项目描述
    2.丢弃旧的构建 保持构建的天数 10 保持构建的最大个数 10
    3.源码管理 选择svn Modules
    Repository URL :
    svn项目路径 eg: svn://ip/dhttest Credentials : 用户(svn账户)
    eg:duhuanteng/2019

4.构建触发器 触发远程构建 (例如,使用脚本)
Help for feature: 触发远程构建 (例如,使用脚本)
身份验证令牌 : 自定义
eg:123459876

后面要用这个密码----> (以下代码这里用不上)
curl -X post -v -u
   admin:9ecdd32c634e0abdfdfd41aef4f674864dd(**jenkins的账号密码**)
   http://ip:8080/jenkins/job/dhttest/build?token=123459876

5.Build
Root POM: pom.xml //需要在svn的仓库找到项目的pom.xml
eg: pom.xml(这里根据svn路径 我的是svn://ip/dhttest/pom.xml)
Goals and options : clean install


6.Post Steps 选择Run only if build succeeds
配置完成之后直接去构建项目,测试项目是否能构建成功


7.构建成功后自动启动的配置
配置---->构建后操作
操作 选择Send build artifacts over SSH
Exec command :

OLD_BUILD_ID=$BUILD_ID
BUILD_ID=dontKillMe
bash /home/svn/dhttest/startup.sh
BUILD_ID=$OLD_BUILD_ID

bash 为svn sh 文件存放位置 自定义


上面操作完直接保存------>系统管理—>系统设置---->Publish over SSH
使用ssh 必须安装插件(Publish Over SSH Send build artifacts over SSH 1.20.1)
配置ssh
Passphrase :填写jenkins的密码
SSH Server
Name : centos_jy(eg: 随便起)
Hostname :12.345.67.89(ip)
Username : root(用户)
Remote Directory : /(根目录下)
Use password authentication, or use a different key 勾选上
Passphrase / Password: 填写服务器连接ssh密码:H…(连接服务器的密码)


//到svn 目录cd /home/svn/dhttest/
//创建startup.sh文件
以下为startup.sh配置

#path为jar的名字
#project为jar存放的绝对路径

#path=dhttest-0.0.1-SNAPSHOT.jar
#project=/home/svn/dhttest/dhttest-0.0.1-SNAPSHOT.jar


basepath=/home/svn/dhttest/
path=dhttest-0.0.1-SNAPSHOT.jar
project=/home/svn/dhttest/dhttest-0.0.1-SNAPSHOT.jar
jenkinsworkspace=/usr/local/apache-tomcat-9.0.0.M26/webapps/workspace/dhttest/target/$path
endpath=$basepath
echo jar的全名 $path
echo jar启动路径 $project
echo 工作空间 $jenkinsworkspace

source /etc/profile

pid=`ps -ef|grep $path |grep -v grep|awk '{print $2}'`

echo 原来的进程 pid为 : $pid

kill -9 $pid
echo 删除jar
echo /home/svn/dhttest/$path
rm -rf /home/svn/dhttest/$path
echo 将jar从jenkins的工作空间复制过来
cp $jenkinsworkspace $endpath
echo 启动jar
nohup java -jar $project  > nohup.log 2>&1 &
echo 返回启动的进程号
endpid=`ps -ef|grep $path |grep -v grep|awk '{print $2}'`

echo 启动后的进程id为 $endpid

构建触发器:

cd
工作空间有可能在/usr/local/apache-tomcat-9.0.0.M26/webapps/workspace/dhttest

//以下操作为 post-commit文件—>授权(可执行命令权限)—>vim post-commit 添加( curl -X post -v -u admin:9ecdd32cd163dfd4e0ab41aef4f674864dd http://ip:8080/jenkins/job/dhttest/build?token=123459876
)命令

 cd /home/svn/dhttest/hooks/
 cp post-commit.tmpl post-commit
 chmod +x post-commit
 vim post-commit

将以下添加至 post-commit

 curl -X post -v -u admin:9ecdd32cd1634e0ab41adfdef4f674864dd (jenkins账号密码)http://12.345.67.89:8080/jenkins/job/dhttest/build?token=123459876

配置完成之后要记得开允许触发远程构建
在配置 ----->触发远程构建 (例如,使用脚本) Help for feature: 触发远程构建 (例如,使用脚本)
身份验证令牌 : 此处为构建触发器所用的token

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值