Ere*_*rem 2 ruby-on-rails chef-infra asset-pipeline aws-opsworks
我正在使用AWS Opsworks来托管我的Rails应用程序(Ruby 2.0/Rails 3.2).对于资产编译过程,我使用AssetSync在S3上自动上传编译的资产.我曾经将凭证存储为环境变量.
您是否知道如何使用Chef/Opsworks进行此操作?
谢谢.
小智 7
我知道这是一篇较旧的帖子,但我发布这个以防万一这有助于其他人.
我发现最简单的方法是使用Chef的部署钩子之一(http://docs.opscode.com/resource_deploy.html#deploy-phases).
在Rails项目根目录中添加名为"deploy"的目录.
在其中添加一个名为before_restart.rb的文件,代码如下:
Chef::Log.info("Running deploy/before_restart.rb")
# map the environment_variables node to ENV
node[:deploy].each do |application, deploy|
deploy[:environment_variables].each do |key, value|
Chef::Log.info("Setting ENV[#{key}] to #{value}")
ENV[key] = value
end
end
Run Code Online (Sandbox Code Playgroud)
当您触发OpsWorks部署时,您应该能够看到在Rails App Server实例日志中设置的ENV变量.