Я пытаюсь создать несколько отдельных файлов .conf для массива vhosts на моем веб-сервере с помощью шеф-повара 11.10. Я хочу, чтобы содержимое этих файлов несколько отличалось на один из vhost.Несколько шаблонов шеф-повара с a Для каждого оператора и массива атрибутов
Текущая реализация создает разные имена файлов (по 1 для каждого в массиве.), Но шаблон содержит только последний элемент в массиве каждый раз.
Например, в массиве есть 3 vhosts - example1.com, example2.com, example3.com. В моей /var/www/conf.d/ каталог У меня есть 3 файлов после того, как рецепт запуска
> example1.com.conf
> example2.com.conf
> example3.com.conf
который является хорошим началом, однако, содержимое этих файлов все же с последней переменной в используемого массива. Все они имеют «example3.com» в качестве хоста, например.
server {
listen 80;
server_name example3.com;
return 301 https://$host$request_uri;
}
Мой рецепт containts это
vhosts = node['nginx']['vhosts']
vhosts.each do |vhost|
node.default['nginx']['hostname'] = vhost
template "#{node[:nginx][:conf_dir]}/#{vhost}.conf" do
source "#{node[:nginx][:vhost_template]}"
owner "root"
group "root"
mode 0644
notifies :restart, resources(:service => "nginx")
end
end
и в моем шаблоне следующий код
server {
listen 443;
server_name <%= node[:nginx][:hostname] %>;
return 301 http://$host$request_uri;
}
и в моем атрибуты/файла default.rb у меня есть следующий массив.
default[:nginx][:vhosts] = [ "example1.com", "example2.com", "example3.com" ]
Это работало отлично Спасибо приятель . Да, переменные - это путь. И определенно относительно атрибутов по умолчанию! :) Большое вам спасибо – jimmy