Kitchen测试如何使用本地vm.box

时间:2014-02-11 09:11:11

标签: chef test-kitchen

每次我跑

kitchen test

下载一个新的虚拟机框。有没有办法让它重复使用本地下载的盒子?

这是我的.kitchen.yml文件。

---
driver_plugin: vagrant
driver_config:
  require_chef_omnibus: true

platforms:
  - name: ubuntu-12.04

suites:
  - name: default
    run_list:
      - recipe[my-rails-server::default]
    attributes:

终端输出:

Downloading Chef  for ubuntu...       
downloading https://www.opscode.com/chef/metadata?v=&prerelease=false&p=ubuntu&pv=12.04&m=x86_64       
to file /tmp/install.sh.1121/metadata.txt       
trying wget...       
url https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chef_11.10.0-1.ubuntu.12.04_amd64.deb       
md5 21524287ed5631eb1c092ba7b589e968       
sha256  7a0a898b3682462620de80230c7a73730dde7131ca069e1d926f6faf07e4fa2f       
downloaded metadata file looks valid...       
downloading https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chef_11.10.0-1.ubuntu.12.04_amd64.deb       
to file /tmp/install.sh.1121/chef_11.10.0-1.ubuntu.12.04_amd64.deb       
trying wget...       
Checksum compare with sha256sum succeeded.       
Installing Chef        

4 个答案:

答案 0 :(得分:11)

Test Kitchen基于.kitchen.yml config。

创建自己的Vagrant文​​件

因此,您必须在.kitchen.yml中指定您的框(应该已经可用于Vagrant,请检查vagrant box list)。在您的示例中,它将是:

platforms:
- name: ubuntu-12.04
  driver:
    box: centos-6.5-x86_64-minimal

厨房将使用可用于Vagrant的盒子,而无需下载。

您还可以指定其他Vagrant选项,例如

- name: centos-vagrant
  driver:
    provider: parallels
    box: centos-6.5-x86_64-minimal
    customize:
      memsize: 1024
      cpus: 2

您可以看到更多示例,例如。在我的Vagrant cookbook lemp-server或Opscode的yum

答案 1 :(得分:2)

如果通过“下载新的VM框”,你的意思是销毁并创建一个,是的,这就是kitchen test所做的。如果要保留实例,只需运行

kitchen converge

如果你的意思是Vagrant正在从互联网上下载一个新的盒子,那么这可能是Vagrant中的一个错误。

答案 2 :(得分:0)

使用以下命令

exec kitchen converge ubuntu

converge将是实例的正则表达式

答案 3 :(得分:0)

在kitchen.yml中使用以下定义来禁用盒子更新

platforms:
  - name: centos-7
    driver:
      box: bento/centos-7
      box_check_update: false

,其中,该框是主机中本地可用的无业游民框。运行以下命令以获取可用框的列表:

$ vagrant box list
bento/centos-6.7           (virtualbox, 2.2.7)
bento/centos-7             (virtualbox, 201808.24.0)