Поставщик chef_zero не будет работать на тестовой кухне
При тестировании chef_zero
поставщик в OpsCode test-kitchen
инструмент, я вижу следующую ошибку:
$ bundle exec kitchen test
-----> Starting Kitchen (v1.1.1)
-----> Cleaning up any prior instances of <default-ubuntu-1004>
-----> Destroying <default-ubuntu-1004>...
==> default: Forcing shutdown of VM...
==> default: Destroying VM and associated drives...
Vagrant instance <default-ubuntu-1004> destroyed.
Finished destroying <default-ubuntu-1004> (0m4.62s).
-----> Testing <default-ubuntu-1004>
-----> Creating <default-ubuntu-1004>...
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'opscode-ubuntu-10.04'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: default-ubuntu-1004_default_1402458172208_54996
Skipping Berkshelf with --no-provision
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 4.2.6
default: VirtualBox Version: 4.3
==> default: Setting hostname...
==> default: Machine not provisioning because `--no-provision` is specified.
Vagrant instance <default-ubuntu-1004> created.
Finished creating <default-ubuntu-1004> (0m36.52s).
-----> Converging <default-ubuntu-1004>...
Preparing files for transfer
Resolving cookbook dependencies with Berkshelf...
Removing non-cookbook files before transfer
Transfering files to <default-ubuntu-1004>
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mixlib-cli-1.3.0/lib/mixlib/cli.rb:226:in `parse_options': invalid option: -z (OptionParser::InvalidOption)
from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application.rb:78:in `configure_chef'
from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application.rb:65:in `reconfigure'
from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application/client.rb:217:in `reconfigure'
from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application.rb:71:in `run'
from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/bin/chef-client:26:in `<top (required)>'
from /usr/bin/chef-client:23:in `load'
from /usr/bin/chef-client:23:in `<main>'
>>>>>> Converge failed on instance <default-ubuntu-1004>.
>>>>>> Please see .kitchen/logs/default-ubuntu-1004.log for more details
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: SSH exited (1) for command: [sudo -E chef-client -z --config /tmp/kitchen/client.rb --json-attributes /tmp/kitchen/dna.json --log_level info]
>>>>>> ----------------------
Кажется, работает chef-client
с -z
флаг, но он возвращает ошибку, что это invalid option
,
Как это исправить?
1 ответ
Проблема может быть в том, что коробка бенто, которая test-kitchen
использует для платформы ubuntu-1004
не был построен с достаточно новой версией предварительно установленного шеф-повара. Следовательно -z
флаг для использования chef_zero
Провайдер недоступен!
Чтобы это исправить, обязательно установите require_chef_omnibus: latest
в .kitchen.yml
:
---
driver:
name: vagrant
driver_config:
require_chef_omnibus: latest
provisioner:
name: chef_zero
platforms:
- name: ubuntu-10.04
- name: ubuntu-12.04
- name: ubuntu-12.10
- name: ubuntu-13.04
- name: ubuntu-13.10
suites:
- name: default
run_list:
- recipe[make-me-a-sammich::default]
attributes:
РЕДАКТИРОВАТЬ:
Также может быть, что у вас есть старая версия OpsCode ubuntu-1004
коробка бенто кешируется локально. Новые бенто-боксы, как указал @sethvargo, не требуют предварительной обработки. Если это так, вы можете попробовать исправить это, переместив сначала старый кешированный ящик, а затем повторите попытку. kitchen test
команда:
mv ~/.vagrant.d/boxes/opscode-ubuntu-10.04 ~/.vagrant.d/tmp/opscode-ubuntu-10.04
bundle exec kitchen test ubuntu-1004 -d never
Если это решит вашу проблему, у вас в системе был плохой кешированный ящик!