Chef 노드가 루트가 아닌 사용자로 chef-client
을 실행해야하는 새로운 환경이 생깁니다. (나는 /etc/chef/
에 chef-user
rwx
와 권한을 만든 및 another SO question 당 올바른 클라이언트 키에 client.rb
점.) 아래는 내 테스트 조리법입니다 :루트가 아닌 사용자로 Chef cron 제조법을 실행할 수 없습니다.
chef-user
로 대상 노드에 로그인하고
cron "clientrun2m" do
minute '*/2'
command "/bin/chef-client"
action :create
user "chef-user"
end
, I 시도 (실패한) chef-client
(sudo가 아닌)을 실행하고 다음 정보를 얻으십시오. 오류가 사용자 권한이나 개인 키와 관련이없는 리소스 수렴과 같은 것으로 보입니다. (나는이 요리 책을 실행하고, user "chef-user"
라인을 빼고 다른 노드에서는 문제없이 sudo 할 것입니다.)이 비법이 루트가 아닌 사용자를 위해 작동하지 않는 이유는 무엇입니까?
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 2 resources
Recipe: cron-delvalidate2m::2min_cu
* cron[clientrun2m] action create[2016-11-07T11:53:22-05:00] INFO: Processing cron[clientrun2m] action create (cron-delvalidate2m::2min_cu line 7)
================================================================================
Error executing action `create` on resource 'cron[clientrun2m]'
================================================================================
Chef::Exceptions::Cron
----------------------
Error updating state of clientrun2m, exit: 1
Resource Declaration:
---------------------
# In /home/chef-user/.chef/cache/cookbooks/cron-delvalidate2m/recipes/2min_cu.rb
7: cron "clientrun2m" do
8: minute '*/2'
9: command "/bin/chef-client"
10: action :create
11: user "chef-user"
12: end
13:
Compiled Resource:
------------------
# Declared in /home/chef-user/.chef/cache/cookbooks/cron-delvalidate2m/recipes/2min_cu.rb:7:in `from_file'
cron("clientrun2m") do
action [:create]
retries 0
retry_delay 2
default_guard_interpreter :default
minute "*/2"
hour "*"
day "*"
month "*"
weekday "*"
command "/bin/chef-client"
user "chef-user"
declared_type :cron
cookbook_name "cron-delvalidate2m"
recipe_name "2min_cu"
end
Platform:
---------
x86_64-linux
[2016-11-07T11:53:22-05:00] INFO: Running queued delayed notifications before re-raising exception
Running handlers:
[2016-11-07T11:53:22-05:00] ERROR: Running exception handlers
Running handlers complete
[2016-11-07T11:53:22-05:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 01 seconds
[2016-11-07T11:53:22-05:00] INFO: Sending resource update report (run-id: 92566ddb-e078-44b2-b862-be34da4a18b4)
[2016-11-07T11:53:22-05:00] INFO: Unable to access cache at /var/chef. Switching cache to /home/chef-user/.chef
[2016-11-07T11:53:22-05:00] INFO: Unable to access cache at /var/chef. Switching cache to /home/chef-user/.chef
[2016-11-07T11:53:22-05:00] FATAL: Stacktrace dumped to /home/chef-user/.chef/cache/chef-stacktrace.out
[2016-11-07T11:53:22-05:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2016-11-07T11:53:22-05:00] ERROR: cron[clientrun2m] (cron-delvalidate2m::2min_cu line 7) had an error: Chef::Exceptions::Cron: Error updating state of clientrun2m, exit: 1
[2016-11-07T11:53:22-05:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
위의 세 번째 줄부터 마지막 줄까지 언급 한 인용 된 stacktrace.out 파일.
[[email protected] ~]$ cat /home/chef-user/.chef/cache/chef-stacktrace.out
Generated at 2016-11-07 11:53:22 -0500
Chef::Exceptions::Cron: cron[clientrun2m] (cron-delvalidate2m::2min_cu line 7) had an error: Chef::Exceptions::Cron: Error updating state of clientrun2m, exit: 1
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/provider/cron.rb:231:in `write_crontab'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/provider/cron.rb:157:in `block in action_create'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/mixin/why_run.rb:52:in `add_action'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/provider.rb:176:in `converge_by'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/provider/cron.rb:156:in `action_create'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/provider.rb:145:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource.rb:603:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/runner.rb:69:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/runner.rb:97:in `block (2 levels) in converge'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/runner.rb:97:in `each'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/runner.rb:97:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/runner.rb:96:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/client.rb:669:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/client.rb:664:in `catch'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/client.rb:664:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/client.rb:703:in `converge_and_save'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/client.rb:283:in `run'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application.rb:302:in `block in fork_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application.rb:290:in `fork'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application.rb:290:in `fork_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application.rb:255:in `block in run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/local_mode.rb:44:in `with_server_connectivity'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application.rb:243:in `run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application/client.rb:464:in `sleep_then_run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application/client.rb:451:in `block in interval_run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application/client.rb:450:in `loop'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application/client.rb:450:in `interval_run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application/client.rb:434:in `run_application'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application.rb:60:in `run'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/bin/chef-client:26:in `<top (required)>'
/bin/chef-client:54:in `load'
/bin/chef-client:54:in `<main>'
>>>> Caused by Chef::Exceptions::Cron: Error updating state of clientrun2m, exit: 1
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/provider/cron.rb:231:in `write_crontab'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/provider/cron.rb:157:in `block in action_create'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/mixin/why_run.rb:52:in `add_action'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/provider.rb:176:in `converge_by'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/provider/cron.rb:156:in `action_create'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/provider.rb:145:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource.rb:603:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/runner.rb:69:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/runner.rb:97:in `block (2 levels) in converge'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/runner.rb:97:in `each'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/runner.rb:97:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/runner.rb:96:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/client.rb:669:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/client.rb:664:in `catch'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/client.rb:664:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/client.rb:703:in `converge_and_save'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/client.rb:283:in `run'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application.rb:302:in `block in fork_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application.rb:290:in `fork'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application.rb:290:in `fork_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application.rb:255:in `block in run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/local_mode.rb:44:in `with_server_connectivity'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application.rb:243:in `run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application/client.rb:464:in `sleep_then_run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application/client.rb:451:in `block in interval_run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application/client.rb:450:in `loop'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application/client.rb:450:in `interval_run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application/client.rb:434:in `run_application'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/lib/chef/application.rb:60:in `run'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.15.19/bin/chef-client:26:in `<top (required)>'
/bin/chef-client:54:in `load'
에서의 crontab에
제거 요리사 클라이언트를 요리사 클라이언트를 추가, stacktrace는 실패의 근본 원인을 찾는 데 도움이 될 것입니다. crontab을 대체 할 때 (또는 루트라고 가정 한 잘못된 위치에서 글쓰기) 버그를 보일 수도 있지만, 코드를 제공하고 재현 할 필요가 없도록 도와줍니다. – Tensibai
관련 코드는 [here] (read_crontab)이어야합니다.'crontab -l -u chef-user' 명령을'chef-user'로 시도해보고 오류가 있는지 확인하십시오. – Tensibai
@Tensibai, 사과 처음 출력을 읽을 때 stacktrace 파일을 놓쳤습니다. 이제 첨부되었습니다. "crontab"을 실행하면 "-u"를 사용하는 데 특권이 있어야합니다. 이는 Chef의 cron 공급자 [1] : https : // github와 [1]의 [뛰어난 문제 또는 논점]처럼 보입니다. com/chef/chef/issues/2491 – yamori