本文介绍了Chef Berks Install(Berkshelf)超时联系Artifactory资料库(法拉第超时/演员坠毁)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

人工工厂 5.8.4专业版

厨师开发工具包版本:1.1.16

Chef Development Kit Version: 1.1.16

首席客户端版本:12.17.44

chef-client version: 12.17.44

交付版本:主要版本(83358fb62c0f711c70ad5a81030a6cae4017f103)

delivery version: master (83358fb62c0f711c70ad5a81030a6cae4017f103)

berks 版本:5.2.0

厨房版本:1.14.2

kitchen version: 1.14.2

在Artifactory中,我有一个(虚拟的)存储库: avirtual-repo

In Artifactory, I have this repository (virtual): avirtual-repo

Berksfile包含:

# cat Berksfile
# vim: ft=berksfile.ruby:

source "http://artifactory-server:8181/artifactory/api/chef/avirtual-repo"

cookbook "top_level_cookbook_name", ">= 0.0.0"

当我运行berks install时,它 有时 成功(需要时间来获取在berks install过程中找到的食谱和相关食谱版本),并且 大多数时间 ,它会失败,并显示以下超时错误消息.

When, I'm running berks install, it sometimes succeeds (takes time to fetch cookbook and dependent cookbook versions that it finds during berks install process) and most of the times, it fails with the following Timeout error messages.

在Jenkins中berks intsall成功运行:我看到了:

For a successful run in Jenkins for berks intsall: I see this:

06:27:39 Resolving cookbook dependencies...
06:27:39 Fetching cookbook index from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo...
06:27:50 Installing active_directory (2.1.16) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
06:27:50 Installing dependent_project1 (3.0.19) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
...
......
....
bunch of more cookbooks are downloaded and it works
the end result is, I see a Berkshelf.lock file as expected in the workspace folder, containing locked versions for the top level cookbooks and its dependent cookbooks
.....
...
06:35:47 
06:35:47 -- Next steps - starts here onwards

对于Jenkins中berks intstall失败运行:我看到以下错误:

For a FAILED run of berks intstall in Jenkins: I see the following errors:

错误消息:/opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:805:在`gets'中:执行期满( 法拉第::超时错误 )

[2019-03-06T10:25:27.447804#74360] 错误-:演员崩溃了!

[2019-03-06T10:25:37.451708#74360] 错误-:无法在10秒内彻底终止所有演员!

失败的完整控制台输出:

10:19:12 Resolving cookbook dependencies...
10:19:12 Fetching cookbook index from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo...
10:19:24 Installing active_directory (2.1.16) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:19:24 Installing apache_commons (0.3.8) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:19:24 Installing dependent_project1 (3.0.19) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:19:24 Installing automation_library (2.0.7) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:19:24 Installing chef_scripts (1.4.0) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:20:20 Installing dependent_project2 (4.10.20) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:20:21 Installing cots_database (7.1.0) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:20:21 Installing database (7.1.1) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:20:22 Installing db_devops (6.1.701) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:21:19 Installing dependent_project3 (3.3.20) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:21:19 Installing top_level_cookbook_name (0.1.6) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:21:20 Installing global_domains (0.1.1) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:21:20 Installing dependent_project4 (1.1.13) from http://artifactory-server:8181/artifactory/api/chef/avirtual-repo ([opscode] http://artifactory-server:8181/artifactory/api/chef/avirtual-repo/api/v1)
10:25:37 /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:805:in `gets': execution expired (Faraday::TimeoutError)
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:805:in `block in parse_header'
10:25:37    from /opt/chefdk/embedded/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:801:in `parse_header'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:784:in `read_header'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:561:in `get_header'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient.rb:1299:in `do_get_header'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient.rb:1245:in `do_get_block'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient.rb:1019:in `block in do_request'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient.rb:1133:in `protect_keep_alive_disconnected'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient.rb:1014:in `do_request'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient.rb:856:in `request'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/adapter/httpclient.rb:36:in `call'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/request/retry.rb:116:in `call'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/ridley-5.1.0/lib/ridley/middleware/follow_redirects.rb:67:in `perform_with_redirection'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/ridley-5.1.0/lib/ridley/middleware/follow_redirects.rb:60:in `call'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/response.rb:8:in `call'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/rack_builder.rb:139:in `build_response'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/connection.rb:377:in `run_request'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/connection.rb:140:in `get'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/community_rest.rb:116:in `find'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/community_rest.rb:100:in `download'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/downloader.rb:61:in `try_download'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/downloader.rb:35:in `block in download'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/downloader.rb:34:in `each'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/downloader.rb:34:in `download'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/installer.rb:105:in `install'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `public_send'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `dispatch'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:63:in `dispatch'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'
10:25:37    from (celluloid):0:in `remote procedure call'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:92:in `value'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/proxies/cell_proxy.rb:17:in `_send_'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/pool_manager.rb:41:in `_send_'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/pool_manager.rb:140:in `method_missing'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `public_send'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `dispatch'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:63:in `dispatch'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'
10:25:37    from (celluloid):0:in `remote procedure call'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/future.rb:104:in `value'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/future.rb:68:in `value'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/installer.rb:175:in `map'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/installer.rb:175:in `install_from_universe'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/installer.rb:39:in `run'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/berksfile.rb:422:in `install'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/cli.rb:143:in `install'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/thor-0.19.4/lib/thor/command.rb:27:in `run'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/thor-0.19.4/lib/thor/invocation.rb:126:in `invoke_command'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/thor-0.19.4/lib/thor.rb:369:in `dispatch'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/cli.rb:52:in `dispatch'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/thor-0.19.4/lib/thor/base.rb:444:in `start'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/cli.rb:27:in `execute!'
10:25:37    from /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/bin/berks:5:in `<top (required)>'
10:25:37    from /usr/bin/berks:49:in `load'
10:25:37    from /usr/bin/berks:49:in `<main>'
10:25:37 E, [2019-03-06T10:25:27.447804 #74360] ERROR -- : Actor crashed!
10:25:37 Faraday::TimeoutError: execution expired
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:805:in `gets'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:805:in `block in parse_header'
10:25:37    /opt/chefdk/embedded/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:801:in `parse_header'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:784:in `read_header'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient/session.rb:561:in `get_header'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient.rb:1299:in `do_get_header'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient.rb:1245:in `do_get_block'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient.rb:1019:in `block in do_request'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient.rb:1133:in `protect_keep_alive_disconnected'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient.rb:1014:in `do_request'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/httpclient-2.8.3/lib/httpclient.rb:856:in `request'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/adapter/httpclient.rb:36:in `call'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/request/retry.rb:116:in `call'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/ridley-5.1.0/lib/ridley/middleware/follow_redirects.rb:67:in `perform_with_redirection'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/ridley-5.1.0/lib/ridley/middleware/follow_redirects.rb:60:in `call'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/response.rb:8:in `call'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/rack_builder.rb:139:in `build_response'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/connection.rb:377:in `run_request'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/connection.rb:140:in `get'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/community_rest.rb:116:in `find'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/community_rest.rb:100:in `download'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/downloader.rb:61:in `try_download'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/downloader.rb:35:in `block in download'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/downloader.rb:34:in `each'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/downloader.rb:34:in `download'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/installer.rb:105:in `install'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `public_send'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `dispatch'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:63:in `dispatch'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize'
10:25:37    /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'
10:25:37 E, [2019-03-06T10:25:37.451708 #74360] ERROR -- : Couldn't cleanly terminate all actors in 10 seconds!
10:25:37 
10:25:37 -- OK berks install failed, see console output above. Exiting Gracefully -- Berks Install Failed -- 
10:25:37 

查看gems .rb文件的源代码,我看到它在某处谈论超时限制为 600 (秒),但是我认为这足以满足要求,因为在成功运行期间,一切都在1-3分钟失败的运行大约需要6-7分钟,然后才能终止整个进程进程,从而最终超时.

Looking at the source code of the gems .rb file, I see somewhere it talks about Timeout limit being 600 (seconds), but I think that's enough as during a successful run, everything works within 1-3 minutes. A failed run takes about 6-7 minutes before it finally times out by killing the whole single process thread.

推荐答案

一个简单的简单解决方案是重新启动机器上的Artifactory服务.

One simple simple solution is to restart Artifactory service on the machine.

OR

尝试以下解决方案:更改gem的源文件并增加值.保存它,然后重试berks install以查看.如果需要,请重新启动Chef.

Try this solution: To change the source file for the gem and bump the values. Save it, retry berks install to see. Restart Chef if required.

例如:将以下文件中的值更改为包含options的行和值,即 retry 到3, retry_interval 到1或2, open_timeout 设置为60,超时设置为60.

For ex:: Change values in the following file, line containing options and values i.e. retry to 3, retry_interval to 1 or 2, open_timeout to 60 and timeout to 60.

# ls -l /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-api-client-3.0.0/lib/berkshelf/api_client/connection.rb
-rw-r--r-- 1 root root 2651 Dec 15  2016 /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/berkshelf-api-client-3.0.0/lib/berkshelf/api_client/connection.rb
[superuser@chefserver ~]
# grep timeout: $_

      options         = {retries: 3, retry_interval: 0.5, open_timeout: 30, timeout: 30}.merge(options)

[superuser@chefserver ~]
#

此处是相关信息: https://github.com/berkshelf/berkshelf/issues/1287#issuecomment-60674084

现在,重要的是,berks install运行时(首先从源存储库(Artifactory)获取厨师食谱工件,尤其是在berks shelf uninstall即清理Berks ShelF (缓存区域).事实证明,如果您运行一个波动AQL(使用curl -uU:pass ... -T aql.jsonjfrog rt s ... --spec aql.json(两个json文件的语法都不同,/strong>(对于相同的AQL搜索,jfrog cli --spec aql.json需要在{}中使用更多的括号),然后您会注意到,该特定运行的控制台输出(通过CLI或某种自动化)将非常快地返回输出,在某些情况下,这将花费无限的时间.如果您有经常运行此类AQL的进程(例如:从一个或多个Jenkins作业的不同运行中运行), berks install可能会间歇性地得到这些错误.

Now, the important thing was what could possibly cause these error messages on the first place, when berks install is running (which fetch chef cookbook artifacts from a source repository (Artifactory) especially after berks shelf uninstall i.e. cleanup of Berks SHELF (cache area). It turned out that if you run a heave AQL (either using curl -uU:pass ... -T aql.json or jfrog rt s ... --spec aql.json (both json files have different syntax (jfrog cli --spec aql.json requires more outside {, } brackets) for same AQL search), then you'll notice, console output for that particular run (via CLI or some automation) will NOT return an output very quickly and in some cases, it'll take infinite time. If you have processes which runs such AQLs very often (ex: running from different runs of a / multiple Jenkins jobs) then berks install may get these errors intermittently.

此外,即使您Control + ^C(杀死或以其他任何方式)杀死curl/jfrog命令行运行的命令,它也会在Artifactory中进行某事,并且可能会在将来所有berks install运行仍然会持续得到这些超时错误,直到执行人工服务重启为止,因为这将有助于解决berks超时问题(目前).

Also, even if you Control + ^C (kill or any other way) kill that curl/jfrog command line run, it'll do something in Artifactory and possibly all future berks install runs will still get these timeout errors continuously until artifactory service restart is performed as that will help resolve berks timeout issue (for now).

一个人应该考虑选择以下方法(特别是选择一种方法而不是1st ):

One should consider picking the following approaches (specially picking the latter one than 1st):

  1. berks shelf uninstall + berks install(即清理架子/缓存,然后获取依赖的食谱版本-从给定的来源获取最新版本,例如:此处的Artifactory并更新berk的CACHE)
  2. berks update + berks install-这将使任何berks cmd更快(因为您没有清理整个缓存并从头开始重新创建它-在berks shelf uninstall之后需要berks install +分钟,具体取决于食谱的人工食谱的其他依赖项/树/图搜索的数量.
  1. berks shelf uninstall + berks install (i.e. clean the shelf/cache and then, fetch dependent cookbooks versions - latest from a given source ex: Artifactory here AND update berk's CACHE)
  2. berks update + berks install -- this will make any berks cmd faster (as you're not cleaning the whole cache and recreating it from scratch - as berks install after berks shelf uninstall takes time 1-10+ minutes depending upon a cookbook artifact's no. of other cookbook dependencies/tree/graph search).

如何使用curljfrog cli使用 .json 文件中查看有关如何使用Artifactory AQL的帖子:JFrog CLI无法在JFrog Artifactory中的第一个属性名称的工件,并使用SSH密钥示例进行多属性搜索

在此处查看berks update的工作方式: berks更新< cookbook-name>"

See here how berks update works: What exactly does "berks update <cookbook-name>" do? or

有关Berkshelf的更多信息,请参见此处: https://docs.chef.io/berkshelf.html

For more info on Berkshelf see here: https://docs.chef.io/berkshelf.html

一种可能的解决方案是尝试创建(或修改)~/.berkshelf/config.json并将其添加以查看是否有帮助?

One possible solution is to try creating (or modifying) ~/.berkshelf/config.json and adding this to see if it helps?

{
  "api": {
    "timeout": 3000
  }
}

这篇关于Chef Berks Install(Berkshelf)超时联系Artifactory资料库(法拉第超时/演员坠毁)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-10 08:23