问题描述
我正在尝试在气隙服务器上安装厨师食谱
我捆绑了所有配方中列出的 gem,并准备了供应商/缓存存档。将其复制到服务器并运行 /opt/chef/embedded/bin/bunlde install --local
成功安装了 233 个 gem,但是当我运行 chef-client -j boot.json
时,它找到了所有 gem 并且不下载但仍然运行 bundle install 步骤并尝试访问 rubygems.org 并失败
在调试模式下运行 Chef-client 没有显示任何 gem 名称,它正在尝试下载,所以我不知道缺少什么。 无论如何我可以跳过这一步或知道缺少哪个宝石?
解决方法
加载说明书后运行的一部分是安装说明书 metadata.rb 中所需的 gem。
客户端准备一个 Gemfile 并启动一个 bundle install
以检查是否安装了必要的 gems并且是最新的,这是 bundler 的行为以及它尝试连接到 rubygems 的原因。组织。
正如评论中所说,在每台服务器上出售所有 gem 远非有效,你最好有一个内部 gem 存储库,并将你的 cient 指向它。
这几乎就是您所做的,从您的配方中获取所有 gem,将它们安装在内部机器上并运行 gem server
。
这可能很乏味,而且还有其他方法可以更轻松地在内部镜像 rubygem here