Я только начал использовать Vagrant и Chef, но я получаю, как мне кажется, довольно странные ошибки.
Все хорошо с простой виртуальной машиной и без шеф-повара, но когда я добавляю несколько получателей, это не получается.
Вот мой текущий default.rb для основного рецепта, вызываемого из Vagrantfile. В основном из этого блога / учебника
r = execute "apt-get update" do
user "root"
command "apt-get update"
action :nothing
end
r.run_action(:run)
include_recipe "php"
include_recipe "apache2"
include_recipe "mysql"
Рецепты php apache2 и mysql прямо с сайта сообщества opscode.
Если я просто добавлю один из этих рецептов, он загрузится нормально.
Иногда два - это хорошо, но если я добавлю все три, то, какой из них окажется последним, вызовет ошибку. Я изменил порядок раунда, и он всегда является последним, который вызывает ошибку. Здесь ошибка - то же самое каждый раз, но в этом случае php был последним из трех, и вы можете увидеть, что он не может быть установлен:
[default] [Fri, 06 Jan 2012 10:01:33 -0800] INFO: Processing package[php5] action install (php::package line 32)
: stdout
[default] [Fri, 06 Jan 2012 10:04:52 -0800] ERROR: package[php5] (php::package line 32) has had an error
: stdout
[default] [Fri, 06 Jan 2012 10:04:52 -0800] ERROR: Running exception handlers
: stdout
[default] [Fri, 06 Jan 2012 10:04:52 -0800] ERROR: Exception handlers complete
: stdout
[default] /opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/file_cache.rb:54:in `initialize': stderr
[default] : : stderr
[default] Read-only file system - /tmp/vagrant-chef-1/chef-stacktrace.out: stderr
[default] (: stderr
[default] Errno::EROFS: stderr
[default] )
: stderr
[default] from /opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/file_cache.rb:54:in `open'
: stderr
[default] from /opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/file_cache.rb:54:in `store'
: stderr
[default] from /opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/application.rb:133:in `debug_stacktrace'
: stderr
[default] from /opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/application/solo.rb:210:in `run_application'
: stderr
[default] from /opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/application/solo.rb:183:in `loop'
: stderr
[default] from /opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/application/solo.rb:183:in `run_application'
: stderr
[default] from /opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/application.rb:66:in `run'
: stderr
[default] from /opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/chef-solo:25
from /opt/ruby/bin/chef-solo:19:in `load'
from /opt/ruby/bin/chef-solo:19
: stderr
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
chef-solo -c /tmp/vagrant-chef-1/solo.rb -j /tmp/vagrant-chef-1/dna.json
The output of the command prior to failing is outputted below:
[no output]
Обычно я уничтожаю виртуальную машину и выполняю vagrant для каждой новой попытки, но пару раз я пробовал vagrant reload и vagrant provision с одинаковыми результатами.
Кроме того, я не знаю, нормально ли это, но мой Mac почти полностью блокируется, пока он выполняет инициализацию. Обычно я могу запустить 2 или 3 vmware vms одновременно, не чувствуя, что он слишком сильно изо всех сил, поэтому для полной блокировки это ... странно.