jenkins+svn+rsync+php_一键自动化部署可持续化集成服务器集群项目_支持回滚

此文的方案支持回滚,支持回滚,支持回滚,重要的事情说三遍!

 

前言:
此文的解决方案,只能解决释放运维一半的工作量,为何一半?因为需要部署代码的服务器集群,都事先安装配置好项目运行所需的环境,例如java项目需要tomcat,php项目需要nginx+php-fpm等。
如果问有没有更好集群部署方案,都能连运行环境都统一自动化集群部署?答案肯定是有的,要用docker容器化集群,而不是服务器集群。此方案后续会更新博文讲解。


一、前期准备
1、代码分发服务器:192.168.0.1
2、需要部署代码的服务器:192.168.0.2
3、需要分发服务器安装好rsync服务,并配置好,用于分发代码。具体参照之前的文章rsync安装配置
4、需要分发服务器安装好Jenkins服务,并配置好,用于一键自动化集群部署。具体参照之前的文章jenkins安装配置
5、需要 部署的服务器集群都安装好rsync服务,用于拉取代码


二、配置jenkins
1、浏览192.168.0.1:8080,访问安装好jenkins服务的分发服务器,输入之前安装时设置的账号密码登录
2、登录后找到,系统管理-》管理插件-》可选插件,搜索Publish Over SSH,安装插件,如果安装了忽略
 


3、配置需要集群部署的服务器ssh连接,找到系统管理-》系统设置-》Publish over SSH-》SSH Servers ,点击新增配置ssh,点击高级可展开更多配置,如有多台就配置多台,配置图中几项即可,然后点击保存应用。
 


三、构建服务器集群部署代码
1、jenkins找到新建任务,输入任务名称,选择构建一个自由风格的软件项目,点击确定
 

 

2、找到general,

2.1、勾选丢弃旧的构建,设置保持构建的天数输入7天,设置保持构建的最大个数输入10,可按需设置
 
2.2、勾选参数化构建过程,设置两个文本参数,status-构建动作,默认值有deploy-发布,roll_back-回滚;version-构建记录id值,默认值为0
 


3、找到源码管理,选择svn,输入svn地址,选择svn用户,没有则新建,Check-out Strategy选择Emulate clean checkout by first deleting unversioned/ignored files, then 'svn update',勾选Quiet check-out
 


4、找到构建触发器,其中,触发远程构建,定时构建,轮询SCM很有用,但不属于此篇文章范畴,构建触发器都不勾选,后续再写博文讲解。
 


5、找到构建环境,也忽略不勾选配置


6、找到构建,增加构建步骤-》执行shell,输入以下内容
case $status in
deploy)
    echo "status:$status"
        backup_path="${JENKINS_HOME}/jobs/${JOB_NAME}/builds/${BUILD_NUMBER}/target"
        deploy_path="/data/${JOB_NAME}/deploy_target"
        if [ -d $backup_path ];then
        echo "$backup_path is exists!"
        else
        mkdir -p $backup_path
        fi
        if [ -d $deploy_path ];then
        echo "$deploy_path is exists!"
        else
        mkdir -p $deploy_path
        fi
cp -r ${WORKSPACE} $backup_path/
cp -r ${WORKSPACE} $deploy_path/
        echo "deploy done!"
;;
roll_back)
echo "status:$status"
echo "build_id:$version"
        backup_path="${JENKINS_HOME}/jobs/${JOB_NAME}/builds/$version/target"
deploy_path="/data/${JOB_NAME}/deploy_target"
rm -rf $deploy_path
cp -r $backup_path $deploy_path/
echo "roll_back done!"
        ;;
*)
    exit
    ;;
esac
 


构建过程的脚本功能说明:
脚本分为 发布 和 回滚,
发布:
先把svn拉下来的代码,备份到backup_path这个变量的目录里,再复制到deploy_path这个变量的发布目录里
回滚:
根据构建记录ID找到对应的备份代码目录,然后复制到deploy_path这个变量的发布目录里


7、找到构建后操作
7.1、点击增加构建后操作步骤,选择Send build artifacts over SSH
SSH Server-》Name,选择刚刚配置好的服务器集群的服务器
SSH Server-》Transfers-》Exec command,输入
rsync -vzrtopg root@192.168.0.1::test_php_deploy /home/www/test_new/ --password-file=/etc/rsyncd.passwd –delete
chmod -R 777 /home/www/test_new/
用于需要部署代码的服务器同步拉取代码
 
其中,rsync命令中的模块test_php_deploy对应的path要改成与构建过程的脚本的deploy_path一致的路径,vim /etc/rsyncd.conf修改,因此可得知,rsync同步的是deploy_path目录的代码到其他服务器的。

7.2、可以点击add server添加多台需要部署代码的服务器
 

7.3、增加构建后操作步骤-》E-mail Notification,输入邮箱,有错误构建会发送邮件通知

8、点击应用保存

四、一键自动化部署
1、点击Build with Parameters,输入status构建动作,deploy部署或roll_back回滚,输入roll_back则需要输入version构建记录ID,version构建记录ID对应的是构建历史的ID,例如#37的37

点击开始构建,然后构建历史会出现一次构建历史,点击查看细节

 

2、在构建历史可点击控制台输出,查看构建过程,如果失败查看原因

如想了解更多技术架构文章,扫码关注我的个人公众号以及转发分享哈~

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Jenkins是一个开源的持续集成工具,可实现自动化构建、测试和部署。Spring Boot是一个基于Spring框架的轻量级Web应用开发框架,提供了快速构建Web应用的开发环境。Maven是一个基于项目对象模型(POM)的项目管理工具,可用于构建、依赖管理和部署SVN是一种源代码管理工具,可用于协作开发和版本控制。 将这些工具组合起来,可实现一键打包发布。首先,在Jenkins中创建一个新的构建项目,并选择Maven项目类型。然后,配置SVN源代码管理,在构建触发器中设置定时执行构建任务。接着,在Maven构建中设置pom.xml文件路径和构建命令,确保能够成功构建Spring Boot应用程序。最后,将打包后的应用程序上传到远程服务器,并启动应用程序部署脚本。 通过这个过程,我们可以实现自动化构建、测试和部署,简部署流程并提高生产效率。同时,通过与Jenkins、Spring Boot、Maven和SVN的结合,可以实现更完整的持续集成持续交付过程。 ### 回答2: Jenkins、Spring Boot、Maven 和 SVN 都是非常流行的开发工具和框架。其中,Jenkins 是一个开放源代码的自动化部署工具,它可以自动构建、测试和部署软件。Maven 是一个对象中心的开发工具,它可以自动编译、测试和部署软件。Spring Boot 是一个开发框架,它可以轻松地构建和部署 Web 应用程序。而 SVN 则是一个用于版本控制的工具,它可以帮助开发人员协同工作,追踪历史记录等。 对于这种情况,我们可以使用 Jenkins 进行自动化部署和打包发布。下面是该过程的步骤: 1. 安装 Jenkins:首先,你需要安装 Jenkins。可以通过下载 Jenkins 的最新版本来安装它。 2. 配置 Maven:在 Jenkins 中,你需要配置 Maven。在 Jenkins 主页的“Manage Jenkins”选项中,可以找到“Global Tool Configuration”菜单。你需要在这里配置 Maven,包括指定 Maven 的路径和版本。 3. 配置构建步骤:在 Jenkins 中,你可以配置构建步骤。在此处你可以通过选择“构建一个 Maven 项目”选项并指定相关的 Maven 工程,然后再指定命令执行变量等。 4. 编写脚本:Jenkins 支持脚本编写,你可以通过写 shell 脚本或者 Windows 批处理来执行构建和部署操作,指定 Maven 打包的相关参数,自动化编译打包、部署服务器等操作。 5. 配置 SVNJenkins 配置 SVN 的方式也非常简单,在 Jenkins 主页中,你可以通过创建装载 SVN 仓库的插件来配置 SVN。 6. 执行自动化部署:最后,你需要执行自动化部署。你可以在 Jenkins 中添加定时任务或在被检测到有 SVN 代码提交后进行自动化部署。 总之,使用 Jenkins 自动化部署的好处在于,它可以大大提高开发效率,减少手动操作,降低出错率,并且它可以随时进行监控和定位问题,有效的提高项目的质量,降低运维成本。 ### 回答3: Jenkins是一个开源的自动化部署工具,可以非常方便地实现一键打包、构建和发布。在使用Jenkins进行springboot maven svn部署时,需要进行如下几个步骤: 1. 安装Jenkins 首先需要在服务器上安装JenkinsJenkins支持多种操作系统,可以根据具体情况进行选择安装方法。 2. 安装必要的插件 需要在Jenkins中安装必要的插件,主要包括Maven Integration plugin、Subversion plugin、Deploy plugin等,这些插件将帮助我们实现源代码的管理、打包构建以及自动部署。 3. 配置JenkinsJenkins中配置SVN、Maven的信息,包括源代码地址、Maven路径等。 4. 编写自动化脚本 根据实际需求,编写自动化脚本来实现构建、测试、打包以及部署,这些脚本可以使用Jenkins提供的Pipeline语法或者其他脚本语言来编写。 5. 执行构建任务 在Jenkins界面上,选择需要构建的项目,点击构建即可,Jenkins将根据自动化脚本执行编译、测试、打包和部署。 6. 验证部署结果 在Jenkins上查看构建结果,如果成功,则可以上线进行测试。如果失败,则需要查看详情并进行修复,以便下次构建成功。 总之,使用Jenkins进行springboot maven svn部署,可以大大提高开发效率,减少手动部署的工作量,不仅在测试、集成部署等方面提供了更好的支持,还有利于提高应用程序的质量和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值