2

我目前正在尝试为我们基于 node.js 的系统设置自动部署。我一直在做大量的研究,但没有什么能真正成为我想要做的自动化工具的明显选择,可以概括为:

  • 将代码从中央 Mercurial 存储库拉入 build-server 构建目录。
  • Concat/Minify 相关的客户端 JS
  • 对于每个服务器:
    • SSH进入盒子
    • 通过 SSH(SCP 或其他)复制相关文件(不同服务器角色的不同代码)
    • 重启相关进程。

我可能会使用Jenkins对此进行高级管理,但我尚未决定使用什么工具来实际编写工作脚本。

它不一定是基于 JS 的构建脚本,但这是一种选择(尽管我并不完全相信 JS 是适合这些东西的语言)。可以使用 Python 或 Bash 风格的解决方案。

什么是能够完成上述任务的明智/稳健的选择?

谢谢!

更新:对不起,我之前没有提到,但理想情况下,我希望构建任务在中央构建/部署服务器上运行,而不是在开发机器上本地运行。

4

3 回答 3

3

现在我使用Capistrano来满足我所有的部署需求。无论是 PHP、Ruby 还是 Node。

几乎所有情况都有食谱,但有了经验,很容易建立自己的食谱。您可以将自己的命令与部署过程中的某些事件挂钩。

Capistrano 使用 SSH 访问生产或登台服务器并远程发出命令。

以下是 node.js 的一些食谱(但我没有尝试过):

https://github.com/loopj/capistrano-node-deploy

于 2013-01-17T13:28:29.453 回答
3

如果将来它对用户有任何价值,我最终选择了Fabric

于 2013-01-24T13:33:19.293 回答
1

如果您坚持使用自己的服务器来托管应用程序,则始终可以使用grunt.js进行自动化。您可以为其编写自定义任务并做任何您想做的事情,或者在社区中为提到的案例找到一些。我相信缩小等已经存在。

不过,作为个人建议,我可以说我很高兴在NodeJits(付费服务)上托管我的节点应用程序。他们提供了一个通过 npm 安装的命令行实用程序,它可以将您的代码复制到他们的云中,进行快照并自动启动应用程序。这是我做过的最简单的部署方案。

于 2013-01-17T15:23:27.103 回答