Рабочая станция шеф-повара: Не удается найти каталог установки omnibus для шеф-повара

#ruby #chef-infra #rvm #chefspec #chef-workstation

Вопрос:

Я только что установил chef-workstation на mac, на моей машине также установлен rvm. Рабочая станция шеф-повара успешно установлена, но когда я пытаюсь запустить chef exec команду, она завершается ошибкой ниже —

 Traceback (most recent call last):
20: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/bin/ruby_executable_hooks:22:in `<main>'
19: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/bin/ruby_executable_hooks:22:in `eval'
18: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/bin/chef:23:in `<main>'
17: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/bin/chef:23:in `load'
16: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/bin/chef:25:in `<top (required)>'
15: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/cli.rb:73:in `run'
14: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/command/base.rb:58:in `run_with_default_options'
13: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/command/env.rb:39:in `run'
12: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/command/env.rb:39:in `tap'
11: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/command/env.rb:41:in `block in run'
10: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/command/env.rb:57:in `ruby_info'
 9: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/command/env.rb:57:in `tap'
 8: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/command/env.rb:60:in `block in ruby_info'
 7: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/command/env.rb:60:in `tap'
 6: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/command/env.rb:63:in `block (2 levels) in ruby_info'
 5: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/command/env.rb:69:in `gem_environment'
 4: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/command/env.rb:69:in `tap'
 3: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/command/env.rb:70:in `block in gem_environment'
 2: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/helpers.rb:124:in `omnibus_env'
 1: from /Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/helpers.rb:72:in `omnibus_embedded_bin_dir'
/Users/tusharhawaldar/.rvm/gems/ruby-2.6.0@base/gems/chef-dk-3.11.3/lib/chef-dk/helpers.rb:142:in `omnibus_expand_path': Can not find omnibus installation directory for Chef. (ChefDK::OmnibusInstallNotFound)
 

Когда я проверил путь omnibus_root, он дает —

 /Users/tusharhawaldar/.rvm/rubies
 

И он пытается найти bin amp; /embedded/bin каталоги в omnibus_root_path, которых там нет, поэтому он вызывает эту ошибку.

Я вручную создал эти каталоги в omnibus_root_path, и теперь я могу запустить chef exec команду, но когда она запускает спецификацию, она теперь выдает ошибку ниже —

 An error occurred while loading ./spec/unit/recipes/initial_packages_spec.rb.
Failure/Error: require 'chefspec'
LoadError:
  cannot load such file -- chefspec
  ./spec/spec_helper.rb:1:in `<top (required)>'
  ./spec/unit/recipes/initial_packages_spec.rb:1:in `<top (required)>'
No examples found.
 

если «chefspec» не работает, это означает, что в настройке чего-то не хватает, что, я сомневаюсь, связано с омнибусом шеф-повара.

Каким должен быть правильный способ устранения ошибки, связанной с ChefDK::OmnibusInstallNotFound?

Ответ №1:

Итак, попробовав разные вещи, я наконец нашел решение для ошибки —

 Can not find omnibus installation directory for Chef. (ChefDK::OmnibusInstallNotFound)
 

И он выполняется ниже команды для обновления пути —

 echo 'export PATH="/opt/chef-workstation/embedded/bin:$PATH"' >> ~/.bash_profile amp;amp; source ~/.bash_profile
 

Из — https://www.tutorialspoint.com/chef/chef_workstation_setup.htm

Шеф-повар Omnibus установит Ruby и все необходимые драгоценные камни Ruby в /opt/chef/embedded, добавив каталог /opt/chef/embedded/bin в файл .bash_profile.