【问题标题】:Chef Client skip bundle install on air gapped server厨师客户端跳过包安装在气隙服务器上
【发布时间】:2021-06-28 05:42:37
【问题描述】:

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

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

【问题讨论】:

  • 你能用运行chef-client时执行的相关代码(来自配方)更新问题吗?
  • @seshadri_cits 不是厨师在步骤中构建的代码一旦获取了与角色相关的食谱,客户端开始捆绑安装食谱宝石a;虽然我已经通过本地捆绑安装安装了宝石它没有记录我丢失的任何宝石
  • 一些关于client configuration 的文档指出将rubygems_url 设置为气隙环境中的本地RubyGems 镜像。这可能就是您所需要的。

标签: ruby rubygems chef-infra chef-client


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2021-11-20
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多