厨师部署?

jam*_*mes 11 git ruby-on-rails amazon-ec2 chef-infra

我有兴趣从Capistrano转换为Chef,但我有一些问题将所有部分组合在一起.

我已经关注了http://wiki.opscode.com/display/chef/Quick+Start并且能够启动EC2实例knife.就代码部署而言,看起来好像我想做http://wiki.opscode.com/display/chef/Deploy+Resource中的内容,唯一的问题是,该页面上没有提到它在哪个目录中提到/文件部署/to/path代码块应该去.

我遇到的另一个问题是了解如何在设置服务器后部署代码更改.也许我只是习惯了我当前的工作流程(git push && cap deploy),但我能说的最好的是,在我提交更改后,我应该ssh进入服务器并运行sudo chef-client?有些事情感觉不对.没有相应的上限,即chef deploy

最后(也许这有点困难),我希望将多个rails应用程序部署到单个服务器上.在每个应用程序的回购中保留某种厨师配置文件以描述其部署的细节似乎是谨慎的,但我不确定那将如何与chef-repo /托管服务器进行交互.每个应用程序都是一个角色吗?根据我对事物运作方式的理解,我对'chef-client'试图在运行时部署所有应用程序的想法感到有些不安.随着git push && cap deploy我敢肯定,我什么部署的.而某些其他应用程序存储库可能不处于可部署状态.是否有办法在此设置中部署一个应用程序?

小智 8

因此,刀实际上能够执行capistrano-esque任务 - 特别是在多个服务器上运行命令.

要将应用程序部署到所有应用程序服务器,假设您遵循opscode rails应用程序cookbook路径,您可以执行以下操作:

knife ssh role:t<appserver-role> chef-client -xroot -P<pass>
Run Code Online (Sandbox Code Playgroud)

这将在所有应用服务器上以root身份运行chef-client.它使用Chef搜索API查找具有该角色的所有节点并在其上运行该命令.

它非常强大.

  • 如果我理解正确,这将运行搜索返回的节点上的所有配方?这意味着,在[部署资源](http://wiki.opscode.com/display/chef/Deploy+Resource)的情况下,我想要执行的任何操作(部署特定修订,回滚等)意味着修改部署配方中的操作和修订属性,将配方推送到厨师服务器,然后发出上述命令? (2认同)

Adv*_*ser 5

我写了以下文章,描述了如何使用chef部署Ruby on Rails.

http://tech.hulu.com/blog/2012/07/06/automating-system-provisioning-and-application-deployment-with-chef/

嗯......这篇文章不只是关于Rails,但是这个例子的最大部分是关于部署Rails.

还有一个名为"application"cookbook的社区食谱,可用于部署Ruby on Rails.与该菜谱相比,本文中的示例对于新人来说应该更容易理解.但是,一旦您习惯使用本文中的示例,您应该查看应用程序cookbook,看看这对您是否更有意义.