2016-09-12 3 views
0

Я пытаюсь создать задачу cron с шеф-поваром, работающим в AWS. Я предполагаю, что у меня есть проблема с разрешением, поскольку ошибки записи, но где я могу увеличить разрешение? или мне действительно нужно увеличить разрешение?Шеф-повар Opsworks не может создать cron

Шеф:

cron 'crontest' do 
    minute "0" 
    hour "/2" 
    day "*" 
    month "*" 
    weekday "*" 
    command "ls" 
end 

Журналы:

Logs from opsworks: 
------------------ 

[2016-09-12T19:47:13+00:00] INFO: Processing cron[crontest] action create (my::crontest line 1) 

================================================================================ 
Error executing action `create` on resource 'cron[crontest]' 
================================================================================ 

Chef::Exceptions::Cron 
---------------------- 
Error updating state of crontest, exit: 1 

Resource Declaration: 
--------------------- 
# In /var/chef/runs/de35b7b0-20ad-4903-a5b1-e8e901695b5b/local-mode-cache/cache/cookbooks/my/recipes/crontest.rb 

1: cron 'crontest' do 
2: minute "0" 
3: hour "/2" 
4: day "*" 
5: month "*" 
6: weekday "*" 
7: command "ls" 
8: end 

Compiled Resource: 
------------------ 
# Declared in /var/chef/runs/de35b7b0-20ad-4903-a5b1-e8e901695b5b/local-mode-cache/cache/cookbooks/my/recipes/crontest.rb:1:in `from_file' 

cron("crontest") do 
action [:create] 
retries 0 
retry_delay 2 
default_guard_interpreter :default 
minute "0" 
hour "/2" 
day "*" 
month "*" 
weekday "*" 
command "ls" 
user "root" 
declared_type :cron 
cookbook_name "my" 
recipe_name "crontest" 
end 

Platform: 
--------- 
x86_64-linux 

[2016-09-12T19:47:13+00:00] INFO: Running queued delayed notifications before re-raising exception 
[2016-09-12T19:47:13+00:00] ERROR: Running exception handlers 
[2016-09-12T19:47:13+00:00] ERROR: Exception handlers complete 
[2016-09-12T19:47:13+00:00] FATAL: Stacktrace dumped to /var/chef/runs/de35b7b0-20ad-4903-a5b1-e8e901695b5b/local-mode-cache/cache/chef-stacktrace.out 
[2016-09-12T19:47:13+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report 
[2016-09-12T19:47:13+00:00] ERROR: cron[crontest] (my::crontest line 1) had an error: Chef::Exceptions::Cron: Error updating state of crontest, exit: 1 
[2016-09-12T19:47:13+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1) 


Logs from /var/chef/runs/de35b7b0-20ad-4903-a5b1-e8e901695b5b/local-mode-cache/cache/chef-stacktrace.out 
------------------ 
>>>> Caused by Chef::Exceptions::Cron: Error updating state of crontest, exit: 1 
/opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.13.37/lib/chef/provider/cron.rb:232:in `write_crontab' 
/opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.13.37/lib/chef/provider/cron.rb:157:in `block in action_create' 
/opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.13.37/lib/chef/mixin/why_run.rb:52:in `add_action' 
/opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.13.37/lib/chef/provider.rb:176:in `converge_by' 
/opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.13.37/lib/chef/provider/cron.rb:156:in `action_create' 
/opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.13.37/lib/chef/provider.rb:145:in `run_action' 
+0

Является ли «час»/2 «действительным сроком cron для целевой системы? Некоторые версии cron не поддерживают синтаксис повторения. Возможно, он терпит неудачу, когда пытается проверить новый crontab. – jedifans

ответ

0

Я недавно имел свои проблемы с OpsWorks (Chef 12) хрон. Я пытался указать

weekday 'wed,fri' 

синтаксиса в определении задания хрон, и в то время как это было законно на целевой системе, что вызвало ошибку в методе Chef. Симптомом этой ошибки было то, что каждый раз, когда этот рецепт был выполнен, текущая запись crontab не редактировалась и не заменялась, дубликат был добавлен под оригиналом. У меня было полдюжины одинаковых строк, прежде чем я даже заметил проблему.

Я установил свою специфическую проблему с помощью синтаксиса в

weekday '4,6' 

. Урок, который я убрал из этого, заключался в том, чтобы не пытаться дистанцироваться с вашим рецептом работы cron. Используйте самую простую, самую старую, самую скучную нотацию, которая позволяет определить ваше задание cron.

Код chef cronjob использует regexp для определения, какие строки добавлять/редактировать. Следует избегать любого, что может смутить парсер.

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