你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Java专栏
让开发自动化: 使用自动化加速部署(7)
 

发行和部署

远程部署和本地部署在实现方面并非完全不同,它仅需要一个不同的通道,从而将资源安全地从一个位置复制到另一个位置(从构建机器复制到目标环境)。在大多数企业中,安全性至关重要,因此仅仅使用 FTP 和 telnet 并不能满足需求。在这种情况下,SCP 和 SSH 可以轻松完成任务。通过 Ant 可以很方便地使用这些通道;事实上,我经常使用 JSch 中的 sshexecscp 任务远程复制文件并在远程机器上运行命令。

迁移到生产环境
尽管某些软件应用程序(例如,Software as a service,即 SaaS)可以改变部署频率,但是仍然难于迁移到生产环境中。您需要添加应用程序和数据库回滚,确保软件系统能够回滚到以前的状态。这一点至关重要,因为有可能带来数百万美元的损失或盈利。和测试软件系统本身一样,必须对自动化部署流程进行严格测试。

使用 SCP 安全复制文件

SCP 能够在两台机器之间安全复制资源。很多工具都支持 SCP。在 Ant 中,理论上讲,在 Ant 中,JSch 将使用 SCP 复制资源(如 JAR 文件),而不需要人为干预,我喜欢将其称之为自动化

在清单 6 中,scp 任务(JSch 提供)将构建机器中的 WAR 文件复制到远程机器上。JSch 库(jsch-0.1.36.jar)必须位于 Ant 的类路径中,以利用 scp 任务。


清单 6. 将一个 WAR 文件从一个机器中安全复制到另一个机器
<target name="copy-tomcat-dist">
  <scp file="${basedir}/target/brewery.war" 
  trust="true" 
  keyfile="${ssh.key.file}"
  username="${ssh.username}"
  passphrase=""
  todir="${ssh.server.username}:${ssh.server.password}@${ssh.server.hostname}
  :${tomcat.home}/webapps" />
</target>

当调用 scp 任务时,需要提供进行复制的本地文件的位置,以及本地 SSH 私钥文件的位置(清单 6 中的 ssh.key.file,用于安全身份验证)。最后,需要在远程机器上提供一个位置(清单 6 中的 ssh.server.hostname),scp 将把(一个或多个)本地文件放在这个位置。

使用 SSH 远程调用流程

与使用 SCP 一样,在远程机器上运行命令通常需要某种安全机制,例如 SSH。在清单 7 中,我使用 JSch sshexec Ant 任务停止和重新启动位于某个远程机器上的 Tomcat 容器。构建流程刚刚将一系列资源(如 WAR 文件)复制到这台机器上。


清单 7. 停止和重新启动远程 Tomcat 实例
<target name="remote-tomcat-stop>
  <sshexec host="${ssh.hostname}"
  port="${ssh.port}"  
  keyfile="${ssh.key.file}"
  username="${ssh.username}"
  passphrase=""
  trust="true"
  command="${tomcat.home}/bin/shutdown" />
  <sleep seconds="${sleep.time}" />
</target>
...
<target name="remote-tomcat-start">
  <sshexec host="${ssh.hostname}"
  port="${ssh.port}"
  username="${ssh.username}" 
  passphrase=""
  trust="true"
  keyfile="${ssh.key.file}" 
  command="${tomcat.home}/bin/startup" />
  <sleep seconds="${sleep.time}" />
</target>

在清单 7 中,我提供了托管 Tomcat 的机器的名称,Tomcat 的端口号(通常为 8080)、私钥文件(ssh.key.file),这样,构建脚本可以安全地访问这个机器并执行特定命令。在本例中,可以看到,我依次调用了 shutdownstartup 命令。

理论上讲,完成这一步骤后,我已经完成了下面这些任务:配置远程数据库、将一个 Web 应用程序移至远程计算机、运行一个 Tomcat 实例。至此,人们可以正常测试甚至使用新版本的应用程序。

(编辑:aniston)

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089