前言

Java Web项目在Linux服务器自动化部署

在这一篇中, 完成的是一个自动化部署的脚本。

Atlassian Bamboo 是一款持续集成构建服务器软件(Build Server)

软件地址: https://www.atlassian.com/software/bamboo

我是在10年前就开始使用Bamboo了, 版本一直没有升级。

Bamboo本身集成的代码管控和Ant的功能, 通过配置就可以完成。

这里还是结合上一篇的脚本, 纳入到Bamboo中, 其实只是让Bamboo调用一下脚本。 或许使用Jenkins更合适 ^^

实现方式

首先说明一下,Bamboo是安装在另一台Linux的服务器, 和项目部署的服务器不在同一台。

所以要使用SSH登录到项目部署的服务器执行脚本。

在bamboo的机器中编写一个脚本实现SSH登录并执行脚本,然后在Bamboo的配置中使用Script的方式进行Build

关键问题

要实现SSH自动登录的话, 最便捷就是使用 Expect 了。

Expect是一个用来处理交互的命令。借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成。形象的说,ssh登录,ftp登录等都符合交互的定义。

我使用的bamboo脚本只能运行bash, 对于expect的运行不支持, 不知道新版是否直接可以。这样的话, 就需要做一次转化了, 通过.sh 调用 .exp

结论就是要写两个脚本, 一个 .sh;  一个.exp

脚本参考

autodeploy.sh

#!/bin/bash
cd /deploy/autodeploy/scripts
./autodeploy.exp

autodeploy.exp

#!/usr/bin/expect
set timeout -1
spawn ssh -t -t -o StrictHostKeyChecking=no root@yourIP
expect "*password:"
send "your password\r"
send "cd /usr/local/deploy\r"
send "./deploy.sh\r"
expect "*End Deploy Successful!"
send "exit 1\r"

说明:

1. -o StrictHostKeyChecking=no

如果不加的话, 每次ssh连接(或rsync)时就会有提示:The authenticity of host *** can’t be established ,需要输出一个“yes”的交互。

2. ssh -t -t

不加 -t -t 选项的话,当远程登录主机时出现Pseudo-terminal will not be allocated because stdin is not a terminal. 错误

3. 最后两句必须加上, 否则一直在ssh的登录窗口, bamboo 会一直处于运行状态。

Java Web项目在Linux服务器自动化部署续-整合Bamboo相关推荐

  1. Java Web项目在Linux服务器自动化部署

    项目介绍 使用Spring+Hibernate开发的Java Web 项目, 在Perforce上做的代码控管, 部署到Linux(Redhat)下的Tomcat服务器上. 手动部署繁琐,如果涉及文件 ...

  2. Java web项目如何在服务器上跑起来(有源码)

    Java web项目如何在服务器上跑起来(有源码) 要用到的工具有:myeclipse.宝塔,navicat premium.xshell. 概述:本博文主要是帮助入门级新手怎么从网上下载一个java ...

  3. Django项目在Linux服务器上部署和躺过的坑

    引言 在各方的推荐下,领导让我在测试环境部署之前开发的测试数据预报平台.那么问题来了,既然要在服务器上部署, 就需要准备: 1.linux服务器配置 2.linux安装python环境搭建与配置 3. ...

  4. Java web项目创建笔记23 之《spring整合xxl-job》

    xxl-job是一款功能强大的分布式任务调度系统. 部署方法按照官网写的说明即可:https://www.xuxueli.com/xxl-job/ 1.下载release版本代码 https://gi ...

  5. 使用eclipse开发Java Web项目(最最最基础)

    本篇首先给出Tomcat 8.0的安装及验证过程,然后在eclipse中配置已安装成功的Tomcat服务器,最后新建一个Java web工程,并绑定已部署的Tomcat服务器,在工程中新建并运行JSP ...

  6. 云服务器 ECS 建站教程:手工部署Java Web项目

    手工部署Java Web项目 Tomcat 一个开源的且免费的 Java Web 服务器,常用来作为 web 开发的工具.它可以托管由 servlet,JSP 页面(动态内容),HTML 页面,jav ...

  7. linux下tomcat部署java web项目_在linux下用tomcat部署java web项目的过程与注意事项

    在linux下用tomcat部署java web项目的过程与注意事项 一.安装JDK 到http://www.oracle.com/technetwork/java/javase/downloads/ ...

  8. 从零搭建Linux服务器以及部署Web项目指南

    在Web项目开发中,服务器搭建是非常重要的,同时部署web项目也是经常需要进行的事情,下面对一系列流程工作进行阐述. 1.搭建服务器 可以购买或者自行搭建 首先需要一台服务器,在服务器中安装好Cent ...

  9. 搭建java部署环境以及部署Web项目到Linux

    系列文章目录 Linux 环境搭建以及xshell远程连接_crazy_xieyi的博客-CSDN博客 Linux常用命令详解_crazy_xieyi的博客-CSDN博客 Linux权限_crazy_ ...

最新文章

  1. 机器学习/数据挖掘/算法岗位面试题汇总
  2. redis单线程为何快
  3. C语言#line预处理器
  4. 拓扑排序和关键路径课程设计
  5. VUE学习和开发中的注意点总结(一),便于回顾(不断完善补充。)
  6. VIM插件: NERDTREE[树形目录]安装与使用
  7. 硅谷初创企业控制成本 裁员风渐起
  8. Html实现Excel锁定表头效果
  9. Kitti数据集百度网盘链接 00-21全
  10. 服务器搬迁方案_服务器搬迁方案
  11. Linux内核4.14版本——GPIO子系统(2)——gpio control driver分析
  12. STM32课设-智能物联网家居系统(UCOSIII+STEMWIN)
  13. java毕业生设计学生管理部门信息共享交流系统计算机源码+系统+mysql+调试部署+lw
  14. android微信逆向工程,iOS逆向 - 微信自动添加好友
  15. 在vue项目中引入高德地图并使用
  16. Python竟然可以画漫画!漫画版的故宫导游图,来袭!
  17. AoCoder 1983 [AGC001E] BBQ Hard(组合数+dp)
  18. 【软件推荐】压缩软件——7-Zip
  19. GSA 8月最新5G报告:全球已发布100台5G设备
  20. 物联网设备管理的未来

热门文章

  1. 【BZOJ4069】[Apio2015]巴厘岛的雕塑 按位贪心+DP
  2. APPIUM+Python+HTMLTestRunner(转)
  3. (IOS)Swift Music 程序分析
  4. C语言中,两整数相除,若分母为零,则会出现怎样的结果???
  5. 有关android工程的构建脚本(build.xml)的学习
  6. 发布一个域安全级别的无代码InfoPath表单作为文档库模版 (InfoPath 一)
  7. 解决输入框自动填充账号密码的问题
  8. 【问题解决方案】谷歌浏览器如何打开“开发者工具”窗口
  9. Guava学习笔记:简化异常处理的Throwables类
  10. 今晚7点30,腾讯专家与你共探广告智能创意新可能