有没有人试图将Opsworks Chef v11食谱转换为Chef v12?

我在Chef 11上运行了多个堆栈,并决定开始将其中一些转换为Chef12。由于AWS删除了他们的opsworks应用程序层(例如rails层配方),我们(opsworks用户)现在负责创建deploy用户,git checkout仓库到deploy_to

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

想知道是否有人为Chef 12转换了食谱并开源?否则,社区是否完全对这些食谱感兴趣?我很确定我不是一个人在这里。

先感谢您!

最佳答案

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

此配方与其他非OpsWorks配方之间的主要区别在于,这将为您拉出所有内容。您不必自定义配方,只需确保您的应用程序和图层的命名正确即可-它将在此构建所有内容-包括您对database.yml的RDS配置!

主要区别在于,OpsWorks中的图层不会“支持Ruby”,因此您将没有用于Rails或Ruby的字段,而需要在其他地方进行管理。 ENV vars的加载方式也有所不同。

此外,请确保阅读有关AWS的Chef 12 for OpsWorks的实现。从技术上讲,他们正在运行两本厨师食谱,它们的内部食谱和您自己的。他们的工作包括管理最新的代理,加载用户(用于ssh),连接监控等等。您必须管理其余的工作。

我们要么用超市的个别食谱替换了他们庞大的食谱中的内容,要么只是重写了它们。例如,旧版Chef 11 opsworks_initial_setup在调整网络和linux设置方面有几件事-我们重新创建了它。

它还会在适当时使用部署用户,例如:
$ ps -eo user,commandUSER COMMAND// sniproot nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.confaws opsworks-agent: master 10820aws opsworks-agent: keep_alive of master 10820aws opsworks-agent: statistics of master 10820aws opsworks-agent: process_command of master 10820deploy unicorn_rails master --env production --daemonize -c /srv/www/app/shared/config/unicorn.confdeploy unicorn_rails worker[0] --env production --daemonize -c /srv/www/app/shared/config/unicorn.confdeploy unicorn_rails worker[1] --env production --daemonize -c /srv/www/app/shared/config/unicorn.confdeploy unicorn_rails worker[2] --env production --daemonize -c /srv/www/app/shared/config/unicorn.confdeploy unicorn_rails worker[3] --env production --daemonize -c /srv/www/app/shared/config/unicorn.confnginx nginx: worker processnginx nginx: worker process
只是过程输出的一个小示例,但root会根据需要引导事情,并且每个过程都利用自己的用户来限制权限和访问。

10-04 14:52