如何将opsworks变量与厨师一起提取到.env文件中?

时间:2015-06-04 03:13:40

标签: php amazon-web-services nginx laravel-5 aws-opsworks

我是厨师的新手,也是最后一块拼图。我正在尝试使用AWS Opsworks中设置的变量在项目根目录中创建.env文件。我不能为我的生活搞清楚。

有人对此有任何建议或工作厨师食谱吗?我已经用Google搜索了我的智慧。

1 个答案:

答案 0 :(得分:4)

如果您使用的是AWS *,通常不会使用.env文件。 .env文件模仿实际在操作系统级别设置的环境变量,这对于您在本地进行开发或在托管平台上非常有用,而该托管平台不允许您自己设置这些变量。

因此,您需要做的就是在Opsworks中为您的应用设置环境变量,然后就完成了。这些将通过PHP从操作系统加载,然后可供Laravel应用程序使用。

*原因是您通常会在此处存储敏感数据,例如数据库和API凭据。您绝对希望将这些内容与代码分开并保持源代码管理。

修改

如果需要,您可以在部署期间编写.env文件。这将是您的Chef脚本的样子:

node[:deploy].each do |application, deploy|
  # write out .env file
  template "#{deploy[:deploy_to]}/current/.env" do
    source 'env.erb'
    mode '0660'
    owner deploy[:user]
    group deploy[:group]
    variables(
      :env => deploy[:environment_variables]
    )
  end
end

这就是你的.env文件模板的样子:

<% @env.each do |key, value| %>
<%= key %>=<%= value %>
<% end %>