如何让Test Kitchen缓存chef-client RPM?

时间:2015-10-16 14:12:00

标签: chef test-kitchen

每次我在创建一个盒子后第一次运行厨房验证时,都需要下载chef-client。 E.g:

a <- c(1,1,1,2,3,4,5,6,7,7,7,7,99,0.5,100,54,3,100,100,100,11,11,12,11,0)
a_ranks <- rank(a, ties.method = "first")
decile <- cut(a_ranks, quantile(a_ranks, probs=0:10/10), include.lowest=TRUE, labels=FALSE)  

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

2 个答案:

答案 0 :(得分:3)

我还没能通过Kitchen缓存RPM,但我已经通过自己下载文件并将其提供给Kitchen来解决问题。

  • 下载RPM文件
  • 将其放在 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 旁边的本地文件夹中。例如.kitchen.yml
  • Kitchen将厨师包下载到chef-pkgs目录,因此请在/tmp中使用.kitchen.yml文件夹设置同步文件夹。例如:

示例chef-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文件,用于从缓存位置安装RPM。

示例chef-pkgs

install.sh

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

我将#! /bin/bash sudo rpm -ivh /tmp/chef-pkgs/chef-12.4.1-1.el6.x86_64.rpm 文件夹添加到我的chef-pkgs文件中。

答案 1 :(得分:0)

重要的是要注意,当前的厨房版本现在已将此选项视为已弃用,例如运行最近的Chef工作站会为您提供Chefdk 3.7。*和1.24。*捆绑在一起-因此您可能会遇到类似的输出:

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

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