Chef Client 在气隙服务器上跳过捆绑安装

问题描述

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

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

解决方法

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

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

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

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

这可能很乏味,而且还有其他方法可以更轻松地在内部镜像 ruby​​gem here