0

我正在尝试在气隙服务器上安装厨师食谱我捆绑了所有食谱中列出的宝石并准备了供应商/缓存存档。将其复制到服务器并/opt/chef/embedded/bin/bunlde install --local成功运行安装的 233 个 gem,但是当我运行chef-client -j boot.json它时,它会找到所有 gem 并且不下载但仍然运行 bundle install 步骤并尝试访问 ruby​​gems.org 并失败

在调试模式下运行 chef-client 不会显示任何 gem 名称,它正在尝试下载,所以我不知道缺少什么。无论如何我可以跳过这一步或知道缺少哪个宝石吗?

4

1 回答 1

1

加载说明书后运行的一部分是安装说明书 metadata.rb 中所需的 gem。

客户端准备一个 Gemfile 并启动一个bundle install以检查必要的 gem 是否已安装并且是最新的,这就是 bundler 的行为以及它尝试连接到 ruby​​gems.org 的原因。

正如评论中所说,在每台服务器上出售所有 gem 远非高效,您最好有一个内部 gem 存储库并将您的 cient 指向它。

这几乎就是您所做的,从您的食谱中获取所有宝石,将它们安装在内部机器上并运行gem server.

这可能很乏味,还有其他方法可以在内部更容易地描述 ruby ​​gem

于 2021-04-08T08:18:42.500 回答