使用FTP和版本控制的超快速Tomcat安装

在谈论持续交付时,Martin Fowler和Jez Humble经常提到的一项测试是“火焰喷射器”测试。 事情是这样的:耶兹会说:“如果我和马丁和我手持装有喷火器和斧头的机房开始攻击您的服务器,您将需要多长时间才能起床并开始运行?”

答案当然应该是:“哦,大约一个小时-在我们扑灭大火,扫清混乱,找到一些新服务器,插入电源并联系我们的顶级航班律师之后,我们才能起诉您造成刑事损害”。 在大多数情况下,情况并非如此,因为部署通常都是手动过程,而安装人员只是按照Word文档中编写的说明列表进行安装。 指令列表是什么? 计算机程序。 现在,举起每个喜欢编写Word文档的人。 好的,现在举起每个喜欢编写代码的人……在您的想象中,您应该看到一个挤满了投票支持编写代码的人的房间,所以为什么在有机会编写部署脚本时我们更喜欢(或者不高兴)写Word文档? 编写脚本以在几秒钟内为我们完成部署,而不是编写Word文档,然后自己进行每次部署,必须更加有趣,高效且具有成本效益。

假设您的机房已被清空,那么让我们考虑一下重新启动并运行所需的内容。 首先,您需要一台具有一些常规设置的机器。 我在这里简化; 但是,您可能需要:

  • 一些用户帐户。
  • 少量的网络(了解您的DNS的位置等)
  • 正确的Java版本
  • Subversion(或其他版本控制)客户端
  • Tomcat(或其他服务器)
  • 一些配置文件
  • 您的WAR文件

现在,这应该像掌握基本驱动器映像或虚拟机并将其打开,使其启动并运行部署脚本一样简单。

如果您曾经阅读过Jez Humble和David Farley的《 持续交付》一书,您就会知道他们提出的主要观点之一是,在设置部署过程时,应将配置文件存储在版本控制系统中。 对我来说,这听起来像是那些非常明显且有用的想法之一,只有在别人向您指出时,您才会这样做。 通常,这是指应用程序的配置文件,但也应引用服务器的配置文件。

关于持续交付您会注意到的另一件事是,尽管它充满了好主意,但故意缺少实用的编码示例1 。 如果您读过我的博客,您可能会记得我曾提到过一次更新一点tomcat的大多数配置文件。 例如添加数据源详细信息SSL配置 。 考虑到这一点,本博客的其余部分采用了Jez和David的合理想法,并演示了为我的tomcat服务器创建一个简单的安装脚本。

如果下载了tomcat的候选版本并展开tar / zip文件,您会注意到,如果它具有conf目录,那么要做的第一件事就是将该目录添加到版本控制中,并将其从扩展的tomcat二进制文件中删除。 现在,您可以检出conf文件并对其进行修改,添加SSL,管理员用户,MySQL数据源或任何您喜欢的文件。 不要忘记再次签入。

接下来要做的是将其余的二进制目录放在FTP服务器2上可访问的安全位置。

您现在拥有的是一个基本设置,所有文件都保存在两个方便的位置,这些文件现在可以重新组合以创建正常运行的服务器。

这里的主要思想是,尽管可以轻松地手动组合这两个部分,但是最好的方法是使用简单的脚本自动完成。

#!/bin/sh
# 
echo Running Tomcat install Script

TOMCAT_VERSION=apache-tomcat-7.0.33-blog

# The FTP server holding the tomcat binaries
SERVER=<your server name>
TOMCAT_LOCATION=/Public/binaries/
SERVER_USER=<your FTP User Name>
SERVER_PASSWORD=<your FTP password>
CUT_DIRS=3

# The version control details
SVN_USER=<your Subversion username>
SVN_PASSWORD=<your Subversion Password>
SVN_URL=https:<the URL to your subversion repository>/Tomcat/apache-tomcat-7.0.33/conf

mkdir ../$TOMCAT_VERSION
pwd
echo changing directory
cd ../vim $TOMCAT_VERSION
pwd

wget -r -nH -nc --cut-dirs=$CUT_DIRS ftp://$SERVER_USER:$SERVER_PASSWORD@$SERVER$TOMCAT_LOCATION$TOMCAT_VERSION

echo ..
echo The directory looks like this:
ls
echo ..
echo Getting the config files from config..

svn --username=$SVN_USER --password=$SVN_PASSWORD co $SVN_URL

bin/startup.sh

# At this point handover to the application deploy script.

在我的脚本中,您将看到我要做的就是使用三个简单的命令。 首先,我使用wget将文件从FTP服务器复制到新服务器位置。 第二个命令是svn co命令,它签出我的tomcat配置文件,最后一个命令只是启动服务器。 脚本的其余部分是所有变量,注释和填充。

现在,我猜想我们之所以编写如此多的Word文档是出于可追溯性的原因之一,所以最后的窍门是通过将脚本也存储在版本控制中,使脚本成为文档。

因此,您可以在数秒之内完成创建tomcat服务器安装的简单方法。 显然,下一步是将服务器安装脚本移交给另一个将您的Web应用程序安装到服务器上的脚本,稍后再进行介绍。

笔记

1我想没有具体示例的主要原因是没有固定的结构(例如Maven目录结构)来创建服务器或部署代码,因为每个组织都不同。 这是一件好事吗? 可能不是,也许应该采取行动来创建“标准服务器”以匹配我们布置代码的“标准”方式。

2这也可以是文件服务器,SFTP或Web服务器,并且tomcat二进制文件可以压缩或解压缩。

参考: Captain Debug博客博客上的JCG合作伙伴 Roger Hughes提供的使用FTP和版本控制的超快速Tomcat安装

翻译自: https://www.javacodegeeks.com/2013/01/super-fast-tomcat-installation-using-ftp-and-version-control.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值