У меня есть приложение Tomcat, работающее на Aws OpsWorks. Я получил поваренные книги из этого хранилища: 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 %>"