mar*_*cks 5 chef-infra test-kitchen
每次我跑
kitchen test
Run Code Online (Sandbox Code Playgroud)
它下载了一个新的虚拟机框.有没有办法让它重复使用本地下载的盒子?
这是我的.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:
Run Code Online (Sandbox Code Playgroud)
终端输出:
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
Run Code Online (Sandbox Code Playgroud)
Mar*_*n R 11
Test Kitchen基于.kitchen.yml配置创建自己的Vagrantfile.
因此,您必须vagrant box list在.kitchen.yml中指定您的框(应该已经可用于Vagrant,检查).在您的示例中,它将是:
platforms:
- name: ubuntu-12.04
driver:
box: centos-6.5-x86_64-minimal
Run Code Online (Sandbox Code Playgroud)
厨房将使用Vagrant可用的盒子,而无需下载.
您还可以指定其他Vagrant选项,例如
- name: centos-vagrant
driver:
provider: parallels
box: centos-6.5-x86_64-minimal
customize:
memsize: 1024
cpus: 2
Run Code Online (Sandbox Code Playgroud)
你可以看到更多例子.在我的Vagrant cookbook lemp-server或者Opscode的yum中.
如果“下载一个新的虚拟机盒”,您的意思是销毁并创建一个,是的,就是这样kitchen test。如果你想持久化实例,只需运行
kitchen converge
Run Code Online (Sandbox Code Playgroud)
如果您的意思是 Vagrant 正在从互联网下载一个新盒子,那么这可能是 Vagrant 中的一个错误。