2015-08-12 5 views
1

Я пытаюсь написать кулинарию, которая будет работать под ubuntu и debian. Я использую пакет с таким же именем в ubuntu и debian. Но в имени debian имя пакета не совпадает с именем службы.имя пакета не совпадает с именем службы

Пример: ubuntu - package name = foo, service = foo. debian - package name = foo, servie = xxxx

мне нужно имя для запуска/перезапуска службы явно или уведомить службу. Итак, как лучше всего использовать правильное имя службы? Конечно, я могу предопределить имя в файле атрибута для ubuntu и debian отдельно, но я хочу попытаться сделать это автоматически.

+0

Наверное кто-то знакомый с этой ситуацией. Я говорю о iptables-persistent package. Он был изменен в последнем debian. Вы можете установить iptables-persistent, но служба netfilter-persistent. Проблема в том, что текущая кулинарная книга работает с ubuntu trusty, и мне нужна обратная совместимость. – user3419308

ответ

1

Поскольку такие различия возникают во многих случаях, есть даже пример для этого входит в документации поварской о service resource:

service 'crond' do 
    case node['platform'] 
    when 'redhat', 'centos', 'scientific', 'fedora', 'amazon' 
    service_name 'crond' 
    when 'debian', 'ubuntu', 'suse' 
    service_name 'cron' 
    end 
    action [:start, :enable] 
end 
+0

Благодарим вас за повтор. Я хочу попытаться найти решение, которое позволяет избежать редактирования поваренной книги, каждый раз, когда имя службы изменяется. – user3419308

+0

Вы также можете включить условия для разных версий платформ. Старайтесь не перегружать вещи - все может измениться с новыми версиями ОС – StephenKing

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