首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Opsworks Chef 12食谱

Opsworks Chef 12食谱
EN

Stack Overflow用户
提问于 2016-03-31 05:15:49
回答 3查看 3.3K关注 0票数 5

有没有人尝试过将Opsworks厨师的v11食谱转换为v12厨师?

我在厨师11上运行了多个堆栈,并决定开始将其中一些转换为厨师12。自从亚马逊网络服务删除了他们的opsworks应用层,例如rails层食谱,我们(opsworks用户)现在负责创建deploy用户,git结帐repos到deploy_to等。

这一切都很灵活,没有更多的名称空间冲突,但我们错过了opsworks免费提供给我们的所有好东西。

不知道是不是有人把Chef 12的食谱改成了开源?否则,社区对这些食谱感兴趣吗?我很确定我并不孤单。

提前谢谢你!

EN

回答 3

Stack Overflow用户

发布于 2016-07-15 02:05:27

opsworks_ruby cookbook on the Supermarket基本上就是您需要的一切。它甚至将应用程序放入相同的目录(即/srv/www/app_name/),设置database.yml,等等。

这个菜谱与其他非OpsWorks菜谱的主要区别在于,它将为您删除OpsWorks配置中的所有内容。你不必自定义食谱,只需确保你的应用程序和层的名称正确-它将从那里构建一切-包括你的database.yml的RDS配置!

主要的区别是,OpsWorks中的层将不是"Ruby感知的“,所以您将不会有Rails或Ruby之类的内容的字段,而是需要在其他地方管理这些内容。加载ENV vars的方式也略有不同。

此外,请务必阅读亚马逊网络服务为OpsWorks实现的Chef 12。从技术上讲,他们有两本厨师食谱在运行,他们内部的一本和你的一本。它们包括管理代理是最新的,加载用户(对于ssh),布线监控,等等。你将不得不管理其余的。

我们要么用超市里的个人食谱取代了他们巨大食谱中的内容,要么只是重写了它。例如,老的厨师11 opsworks_initial_setup有一些关于调整网络和linux设置的东西-我们重新创建了它。

它还根据需要使用deploy users,例如:

$ ps -eo user,command USER COMMAND // snip root nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf aws opsworks-agent: master 10820 aws opsworks-agent: keep_alive of master 10820 aws opsworks-agent: statistics of master 10820 aws opsworks-agent: process_command of master 10820 deploy unicorn_rails master --env production --daemonize -c /srv/www/app/shared/config/unicorn.conf deploy unicorn_rails worker[0] --env production --daemonize -c /srv/www/app/shared/config/unicorn.conf deploy unicorn_rails worker[1] --env production --daemonize -c /srv/www/app/shared/config/unicorn.conf deploy unicorn_rails worker[2] --env production --daemonize -c /srv/www/app/shared/config/unicorn.conf deploy unicorn_rails worker[3] --env production --daemonize -c /srv/www/app/shared/config/unicorn.conf nginx nginx: worker process nginx nginx: worker process

这只是进程输出的一个小示例,但是root会根据需要引导程序,并且每个进程都利用自己的用户来限制权限和访问。

票数 3
EN

Stack Overflow用户

发布于 2017-05-19 18:17:16

我认为最常见的方式是使用超市中的“应用程序”食谱:https://supermarket.chef.io/cookbooks/application/versions/4.1.6 (它也基于Poise)。注意:使用的是版本4的,他们删除了v5中几乎所有的好特性。

它将创建目录结构,支持不同的部署策略,并提供一些可以挂钩的事件。请注意:在我看来,Opsworks文档在“使用opsworks和chef12进行部署”这一主题上还算不错:来自gui的信息(如repo-url等)并不在node对象上,而是在应用程序的数据库标签中。对于调试,查看/var/chef/runs/<run-id>/目录以查看其中的可用内容非常有帮助。展示这个想法的一小段代码:

代码语言:javascript
运行
复制
app = search("aws_opsworks_app").first
application "#{app['shortname']}" do
  owner 'root'
  group 'root'
  repository app['app_source']['url']
  revision   'master'
  path "/srv/#{app['shortname']}"
end

这将在/srv上创建releases/current目录结构并签出代码。注意:您可能认为您在GUI中指定的ssh-key会以某种方式自动放在适当的位置。不是的,你得自己处理。查看chef11 opsworks食谱:https://github.com/aws/opsworks-cookbooks/blob/release-chef-11.10/scm_helper/libraries/git.rb

票数 1
EN

Stack Overflow用户

发布于 2016-03-31 06:16:34

我不知道旧的OpsWorks食谱,但可以查看https://github.com/poise/application_examples/中使用普通厨师(也可以在OpsWorks上工作)进行Rails (以及更多)部署的一些示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36319906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档