2015-07-24 5 views
2

Предположим, у вас есть 2 пары атрибутов с 1 соответствующим шаблоном, и каждая пара атрибутов предназначена для другой службы. Как перезапустить каждую службу отдельно, а не перезапускать оба сервиса, когда изменяется только одна из двух пар атрибутов. Благодаря!Перезапуск службы только при изменении конкретного атрибута

#recipe 
template "/etc/security/limits.conf" do 
    source 'limits.conf.erb' 
    mode '0644' 
    notifies :restart, 'service[nginx]' #need code to restart separately 
    notifies :restart, 'service[memcached]' #same as above 
end 

#attributes 
default['nginx']['www-data']['soft'] = 32000 
default['nginx']['www-data']['hard'] = 32000 
default['memcache']['soft'] = 32000 
default['memcache']['hard'] = 32000 

#template 
www-data soft nofile <%= node['nginx']['www-data']['soft'] %> 
www-data hard nofile <%= node['nginx']['www-data']['hard'] %> 
memcache hard nofile <%= node['memcache']['hard'] %> 
memcache soft nofile <%= node['memcache']['soft'] %> 
+0

Не могли бы вы разместить образец кода? Есть много способов, и все зависит от вашей реализации. Благодарю. Добро пожаловать в SO, кстати. –

+0

Спасибо, Изабель. Я добавил код. Береги себя. –

ответ

1

Я предлагаю вам попробовать добавить рубиновый блок среднего человека для управления сервисом. Вам нужно заменить приведенные ниже инструкции if и elsif на те, которые вы используете, чтобы проверить, какой сервис нужно запустить. -

template '/etc/security/limits.conf' do 
    source 'limits.conf.erb' 
    mode '0644' 
    notifies :run, 'ruby_block[start_right_service]', :immediately 
end 

ruby_block 'start_right_service' do 
    action :nothing 
    block do 
    if [# nginx attributes changed] 
     self.notifies :restart,'service[nginx]',:immediately 
    elsif [# memcachedattributes changed] 
     self.notifies :restart,'service[memcached]',:immediately 
    else 
     self.notifies :restart,'service[nginx]',:immediately 
     self.notifies :restart,'service[memcached]',:immediately 
    end  
    end 
end 
+0

Спасибо @IsabelHM, что именно то, что мне нужно. Хороших выходных! –

+0

@ DanH. Рад слышать. Ты тоже! :) –

Смежные вопросы