Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Kitchen test how to use local vm.box

Every time I run

kitchen test

it downloads a new vm box. Is there a way to make it re-use a locally downloaded box?

Here is my .kitchen.yml file.

---
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:

Terminal output:

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        
like image 247
markhorrocks Avatar asked Feb 11 '14 09:02

markhorrocks


2 Answers

Test Kitchen creates its own Vagrantfile, based on .kitchen.yml config.

Therefore you have to specify your box (which should be already available for Vagrant, check vagrant box list) in .kitchen.yml. In your example it would be:

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

And kitchen will use box available for Vagrant, without downloading it.

You can also specify other Vagrant options, e.g.

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

You can see more examples eg. in my Vagrant cookbooks lemp-server or or Opscode's yum.

like image 82
Marcin R Avatar answered Nov 18 '22 00:11

Marcin R


If by "downloads a new VM box", you mean destroys and creates one, yes, that's what kitchen test does. If you want to persist the instance, just run

kitchen converge

If you mean that Vagrant is downloading a new box from the Internet, then that's likely a bug in Vagrant.

like image 20
sethvargo Avatar answered Nov 18 '22 01:11

sethvargo