3

每次创建盒子后第一次运行厨房验证时,都需要下载厨师客户端。例如:

 downloaded metadata file looks valid...
       downloading https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-12.4.1-1.el6.x86_64.rpm
         to file /tmp/install.sh.2340/chef-12.4.1-1.el6.x86_64.rpm

我的互联网连接很差,所以这需要很长时间。有没有一种简单的方法来缓存 RPM,这样我就不必每次都下载它了?

4

2 回答 2

4

我无法通过 Kitchen 缓存 RPM,但我通过自己下载文件并将其提供给 Kitchen 解决了这个问题。

  • 下载 RPM 文件
  • 将其放在您的.kitchen.yml. 例如chef-pkgs
  • Kitchen 将厨师包下载到一个目录,因此在您的文件/tmp夹中设置一个同步文件夹。例子:.kitchen.ymlchef-pkgs

示例.kitchen.yml

driver:
  name: vagrant
  vagrantfiles:
    - Vagrantfile
  synced_folders:
    - ["./chef-pkgs", "/tmp/chef-pkgs"]

provisioner:
  name: chef_zero
  require_chef_omnibus: 12.4.1
  chef_omnibus_url: file:///tmp/chef-pkgs/install.sh
  • install.sh在您的文件夹中创建一个文件,chef-pkgs从缓存位置安装 RPM。

示例install.sh

#! /bin/bash
sudo rpm -ivh /tmp/chef-pkgs/chef-12.4.1-1.el6.x86_64.rpm

我从这篇有用的博客文章中得到了想法和代码:http: //erichelgeson.github.io/blog/2014/09/23/simple-chef-package-cache/

我将chef-pkgs文件夹添加到我的.gitignore文件中。

于 2015-10-16T14:12:00.167 回答
0

可能需要注意的是,当前的厨房版本现在将此选项视为已弃用,例如,运行相当新的厨师工作站会为您提供与 1.24.* 捆绑的 chefdk 3.7.* - 因此您可能会面临类似的输出:

-----> Starting Kitchen (v1.24.0)
$$$$$$ Deprecated configuration detected:
chef_omnibus_url
Run 'kitchen doctor' for details.

在ChefRFC901下了解更多信息。到目前为止,我无法通过任何方式从共享到 vm 的文件中安装 chef,但仍然可以选择覆盖元数据 url 并通过“本地”http 提供服务。

于 2019-03-29T10:33:04.750 回答