Jenkins+Maven+Svn 快速发布环境

Jenkins 是一款持续集成工具,它可以做的事情很多,其中一个主要的功能就是简化部署流程

  • 传统的发布流程
    • 本地把把项目打包
    • 通过FTP等工具,传输到服务器
    • 关闭tomcat,备份项目包,然后将新上传的包放到webapp目录下
    • 启动tomcat
  • Jenkis的发布流程
    • 用户在Jenkis上点击某个按钮
    • Jenkis收到发布命令
    • Jenkis从svn上把源代码download下来
    • Jenkis根据你设置的mvn命令打包
    • Jenkis把你打包好的war传输到远程的tomcat的webapps目录下
    • tomcat启动

一、安装Jenkis

  • 到官网下载Jenkis的war包,其官网下载地址为:http://mirrors.jenkins.io/war/latest/jenkins.war

  

  • 将war包copy到tomcat的webapp目录下
    • 需要设置JENKINS_HOME,否则windows系统会安在C盘,liunx会安装在/root/.jenkis下
    • tomcat和jdk和传统的方式一样
  • 启动tomcat服务器
  • 访问Jenkins
    • 浏览器输入:http://127.0.0.1:8080/jenkis,进入Jenkis访问页面
    • 首先是输入初始密码,这个有提示,跟着提示找到文件,找到密码,输入即可
    • 安装推荐的插件

二、安装插件

  • 安装Maven插件
  • 安装svn插件
    • 点击系统管理-->管理插件-->可选插
    • 查找Subversion Plug-in插件
    • 直接安装

三、创建构建项目

  • 全局工具配置
    • 点击系统管理-->全局工具配置-->配置jdk、maven配置
  • 构建一个maven项目

  

  • 添加源码下载路径
  • 添加maven打包设置
  • 打包完成后执行shell命令,将打包好的war包copy到远程服务器,并执行远程服务器的的shell脚本
    • scp为传输文件命令,ssh是远程登录命令,都需要免秘钥登录
    • 脚本jenkins内容为:

      

tomcat_home=/usr/local/tomcat
tomcat=`ps -ef|grep tomcat|grep -v 'grep'|awk '{print $2}'`;
echo ${tomcat}
if test -z ${tomcat}
then
   echo "tomcat 没有启动"
else
   echo "准备结束tomcat进程..."
   sh ${tomcat_home}/bin/shutdown.sh
   sleep 5
   kill -9 ${tomcat}
   echo "tomcat 进程已经结束"
fi

##备份war包
mkdir ${tomcat_home}/bak
mv ${tomcat_home}/webapps/hb.war ${tomcat_home}/bak/hb.war-$(date "+%Y%m%d-%H%M%S")


##发布war包
rm -rf ${tomcat_home}/webapps/hb*
cp -r /root/hb.war ${tomcat_home}/webapps/

##启动tomcat
sh ${tomcat_home}/bin/startup.sh

echo "启动tomcat完成"

Linux之间配置SSH互信(SSH免密码登录)

为简化SSH过程,采用证书方式,免去SSH登入时需要输入账号密码的过程,具体操作如下:

一、在SSH服务器所在机器上

1、以root用户登录,更改ssh配置文件 /etc/ssh/sshd_config,去除以下配置的注释

RSAAuthentication yes #启用rsa认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径

 2、重启SSH服务

[root@server /]#systemctl restart sshd  //重启ssh服务

二、在客户端机器上

1、生成公钥私钥对

[root@client /]#ssh-keygen -t rsa

一路默认回车,系统在/root/.ssh下生成id_rsa、id_rsa.pub

2、把id_rsa.pub发送到服务端机器上

[root@client /]#ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.1.20 #server ip

3、验证

[root@client /]#ssh 192.168.1.20 #server ip

猜你喜欢

转载自www.cnblogs.com/lizongti/p/10266891.html