2016-07-25 3 views
0

На данный момент мне нужно установить шахматные коронки на основе имени хоста для рецепта, устанавливающего clamac. У меня есть небольшой пример, который хорошо работает, но мой конечный продукт должен будет работать почти сотнями разных имен хостов в основном с восходящими числами. Пример сервера: myserver-db [1-12], anotherserver-acc [1-9].Chef-solo create cron на основе node.name

cron 'clam-scan-weekly Staggered 1' do 
     only_if {node.name == 'myserver-db1' || 'myserver-db3' } 
     minute 30 
     hour 22 
     weekday 1 
     command '/usr/bin/clamscan --exclude-dir="/dev/|/proc/|/run/|/sys/" -l clamscan.log -r /' 
     user 'root' 
end 

cron 'clam-scan-weekly Staggered 2' do 
     only_if {node.name == 'myserver-db2' || 'myserver-db4' } 
     minute 30 
     hour 22 
     weekday 1 
     command '/usr/bin/clamscan --exclude-dir="/dev/|/proc/|/run/|/sys/" -l clamscan.log -r /' 
     user 'root' 
end 

Конечной целью является создание трех из четырех шахматных заданий cron на основе имен хостов. Я заглянул в ruby_blocks, и, возможно, это возможно, но, возможно, может быть проще. Я надеялся, что глобус будет работать, но это не ... Спасибо за любую помощь!

+0

Вы хотите разнести минуту или час исполнения? Как часто они должны выполняться? –

ответ

0

Итак, основная проблема заключается в том, что x == 'a' || 'b' - это то, что вы написали, но x == 'a' || x == 'b' - это то, что вы имели в виду, это очень разные.

Чтобы решить эту проблему без bajillion линий копирования и вставки, хотя:

cron 'whatever' do 
    # Other properties here. 
    minute node.name.hash % 60 
end 
Смежные вопросы