我有一个在Aws OpsWorks上运行的Tomcat应用程序。我从以下存储库中获取食谱:https://github.com/aws-samples/opsworks-example-cookbooks。我已经做了一些调整,但是效果很好。
我现在的问题是我想访问在OpsWorks控制台上设置的环境变量。我只需一个变量就可以做到这一点。如果我尝试放入另一个,则不起作用。我的Ruby技能很差,所以我认为这很容易。
下面是我配置环境变量的部分。 DB_URL有效,但是另一个名为“ ENVIRONMENT”的环境无效。
include_recipe 'tomcat::service'
Chef::Log.info("URL: #{node[:deploy]['ballstreetapi'][:environment_variables][:DB_URL]}")
Chef::Log.info("URL: #{node[:deploy]['ballstreetapi'][:environment_variables][:ENVIRONMENT]}")
template 'tomcat environment configuration' do
path ::File.join(node['tomcat']['system_env_dir'], "tomcat#{node['tomcat']['base_version']}")
source 'tomcat_env_config.erb'
owner 'root'
group 'root'
mode 0644
backup false
variables( :a => node[:deploy]['ballstreetapi'][:environment_variables][:DB_URL])
variables( :environment => node[:deploy]['ballstreetapi'][:environment_variables][:ENVIRONMENT])
notifies :restart, resources(:service => 'tomcat')
end
template 'tomcat server configuration' do
path ::File.join(node['tomcat']['catalina_base_dir'], 'server.xml')
source 'server.xml.erb'
owner 'root'
group 'root'
mode 0644
backup false
notifies :restart, resources(:service => 'tomcat')
end
上面的代码使用的文件:
DB_URL="<%= @a %>"
ENVIRONMENT="<%= @environment %>"