Тестовая кухня не может установить гостевые дополнения VirtualBox 4.3.28

У меня возникли проблемы с созданием синхронизированной папки с помощью kitchen. Похоже, что-то не так с последней версией гостевых дополнений Virtualbox (2.3.8)

После запуска:

$ kitchen converge

Я получаю это:

Downloading VirtualBox Guest Additions ISO from http://download.virtualbox.org/virtualbox/4.3.28/VBoxGuestAdditions_4.3.28.iso
Copy iso file /home/rocker/.vagrant.d/tmp/VBoxGuestAdditions_4.3.28.iso into the box /tmp/VBoxGuestAdditions.iso
mount: /dev/loop0 is write-protected, mounting read-only
Installing Virtualbox Guest Additions 4.3.28 - guest version is 4.3.20
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.3.28 Guest Additions for Linux............
VirtualBox Guest Additions installer
Removing installed version 4.3.20 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox non-DKMS kernel modules[  OK  ]
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module[FAILED]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions[  OK  ]
Installing the Window System drivers
Could not find the X.Org or XFree86 Window System, skipping.
An error occurred during installation of VirtualBox Guest Additions 4.3.28. Some functionality may not work as intended.
In most cases it is OK that the "Window System drivers" installation failed.
Cleaning up downloaded VirtualBox Guest Additions ISO...
Restarting VM to apply changes...
==> default: Attempting graceful shutdown of VM...
==> 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: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /home/vagrant/sync => /home/rocker/environments/chef-repo/mediacenter/data
STDERR: Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` home_vagrant_sync /home/vagrant/sync
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` home_vagrant_sync /home/vagrant/sync

Вот мой .kitchen.yml

---
driver:
    name: vagrant
    synced_folders:
        - ["data", "/home/vagrant/sync"]

provisioner:
    name: chef_solo
    cookbooks_path: "/home/rocker/environments/chef-repo/cookbooks"

platforms:
    - name: cento7
      driver:
        box: centos7
        box_url: http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-7.0_chef-provisionerless.box
        network:
        - ["private_network", {ip: "192.168.38.34"}]
        customize:
            memory: 1536

suites:
    - name: server
      run_list:
        - recipe[chef-server::default]
      attributes:

Если я удалю эту часть:

synced_folders:
    - ["data", "/home/vagrant/sync"]

гостевые дополнения VirtualBox по-прежнему не работают, но это не останавливает процессы конвергенции.

То же самое происходит, если я использую окно изображения Learningchef Centos 6.5:

    box: learningchef/centos65
    box_url: learningchef/centos65

Я провел некоторое исследование в Интернете, и, похоже, это решает проблему для многих людей, которые используют:

$ vagrant plugin install vagrant-vbguest

Итак, установка гостевого плагина Vagrant Virtualbox. Могу ли я как-то включить его в жизненный цикл тестовой кухни, а не делать это вручную?

EDIT: Кроме того, сгенерированный Vagrantfile выглядит так:

Vagrant.configure("2") do |c|
  c.berkshelf.enabled = false if Vagrant.has_plugin?("vagrant-berkshelf")
  c.vm.box = "centos7"
  c.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-7.0_chef-provisionerless.box"
  c.vm.hostname = "server-cento7"
  c.vm.network(:private_network, {:ip=>"192.168.38.34"})
  c.vm.synced_folder ".", "/vagrant", disabled: true
  c.vm.synced_folder "/home/rocker/environments/chef-repo/mediacenter/data", "/home/vagrant/sync", nil
  c.vm.provider :virtualbox do |p|
    p.customize ["modifyvm", :id, "--memory", "1536"]
  end
end

Любые советы очень ценятся.


person Trevor Donahue    schedule 09.07.2015    source источник
comment
Это не столько решение, сколько избежание, но можно попробовать использовать коробку с уже установленными гостевыми дополнениями. Вот сайт, если вы еще не знакомы. Кроме того, бродячие плагины являются глобальными, поэтому после их установки вам не нужно будет делать это снова для других проектов на том же компьютере.   -  person Iain_b    schedule 11.07.2015
comment
да, это сработало. Если вы придумаете ответ, я могу считать ваш решением   -  person Trevor Donahue    schedule 11.07.2015
comment
большое спасибо. Это работает!   -  person toto'    schedule 19.10.2020


Ответы (1)


Вы можете вообще избежать этой проблемы, просто используя коробку с уже установленными гостевыми дополнениями. Вы можете просматривать сторонние ящики здесь. Скорее всего, найдется тот, который вы сможете использовать.

Кроме того, бродячие плагины являются глобальными, поэтому после их установки вам не нужно будет делать это снова для других проектов на том же компьютере.

(Обновлено с комментария до ответа)

person Iain_b    schedule 11.07.2015
comment
Спасибо, установил б/у один из ящиков и все обновил $ sudo yum update; также установка заголовков ядра Linux помогла с установкой гостевых дополнений. - person Trevor Donahue; 12.07.2015