什么是安全发布网站发布的最佳方式?

那么,根据你的经验,最好的方法是什么? 在构build自动化工具中是否还有可编写脚本/可触发的安全方法?

编辑:我应该提到这是Windows / .net,我将部署到iis6

Solutions Collecting From Web of "什么是安全发布网站发布的最佳方式?"

对于一些项目,我使用卡皮斯特拉诺推出生活。 它建立在ruby之上,使部署脚本编写超级简单,并使用ssh。

在其他项目中,我有一个小的部署应用程序,使用bash执行svn导出到临时目录,然后rsync它到活服务器。 你可以使rsync使用ssh。

我非常喜欢Capistrano方法,即使你的项目不在Ruby / Rails中。

这似乎是SFTP可以轻松完成的事情。 看一下PuTTY (psftp和pscp)或WinSCP for Windows,或rsync和OpenSSH for Unix。

@Neall,我会在第二行添加一个set -e ,因为如果rsync由于某种原因失败,你不希望活动的站点被替换。 如果任何命令失败,则set -e使脚本退出。

编辑: set -e应该是脚本中的第一件事,就在#!/bin/bash

复制您的实时站点目录,使用rsync使用您的最新版本更新该副本,然后重命名实时更新的目录,以便更新的版本现在可用。

在bash中:

 #!/bin/bash set -e cp -R /var/livesite /var/newversion rsync user@devserver:/var/readytogolive /var/newversion mv /var/livesite /var/oldlivesite mv /var/newversion /var/livesite 

中提琴!

编辑:@Ted Percival – 这是一个好主意。 我甚至不知道“set -e”。 更新的脚本。 编辑:再次更新泰德的建议(虽然我认为它仍然会工作,如果某种程度上cp命令失败,如果cp失败,你可能有更严重的问题。)

我会继续推荐Capistrano ,不过如果你正在寻找一个基于GUI的解决方案,你可以尝试Webistrano的前端。 清理,基于ssh的,理智的部署和回滚语义,以及通过ruby的简单脚本和可扩展性。

您可以随时编写一个小型客户端/服务器应用程序,在源处加密,推送文件,然后在目的地解密。 这是一点点工作,但可能是一个微不足道的数额。 只要您的自动化工具支持在文件系统中执行某些操作(我认为所有的操作都是这样),就可以编写脚本。

唯一的缺点是你可能无法在集成环境中得到有意义的错误消息,而无需你做更多的工作(尽管取决于你的设置,这可能就像发送错误消息到stdout一样简单)。

hm,在这里我们使用一个staging“服务器”来测试活动环境(实际上,它是生产服务器上的一个apache虚拟主机)和araxis merge (一个非常聪明的逐行文件比较工具)来同步开发和分期。

一旦经过测试,只是; 替换生产webroot上的文件:)

/ MP

我做了一个自由职业,我们建立了三个独立的环境。

  • 开发的服务器,使用CruiseControl继续构建。 任何检入都会触发构建。 QA测试在这里完成。
  • 测试服务器,用户验收测试已完成。
  • 生产。

工作流程如下:

  1. 开发人员检查对SourceControl的更改。
  2. CruiseControl构建并部署到Dev的构建。
  3. 开发者已被QAed了
  4. 在通过QA之后,会运行一个robocopy脚本,将Dev构建部署到Test。
  5. 测试是UAT'ed
  6. 测试通过后,会运行一个将测试部署到PRD的robocopy脚本。