1

キッチンを使用して同期フォルダーを作成できません。Virtualbox Guest Additions (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 Guest Additions は引き続き失敗しますが、収束プロセスは停止しません。

learningchef centos 6.5 イメージ ボックスを使用すると、同じことが起こります。

    box: learningchef/centos65
    box_url: learningchef/centos65

私はオンラインでいくつかの調査を行いましたが、使用する多くの人々の問題を解決するようです:

$ vagrant plugin install vagrant-vbguest

したがって、Vagrant Virtualbox ゲスト プラグインをインストールします。テストキッチンのライフサイクルに何らかの形でプラグインして、このステップを手動で実行しないことはできますか?

編集: また、生成された 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

どんなアドバイスでも大歓迎です。

4

1 に答える 1

1

ゲスト追加機能が既にインストールされているボックスを使用するだけで、この問題を完全に回避できます。ここでサードパーティのボックスを参照できます。使用できるものがある可能性があります。

また、vagrant プラグインはグローバルであるため、一度インストールすると、同じマシン上の他のプロジェクトに対して再度インストールする必要はありません。

(コメントから回答にアップグレード)

于 2015-07-11T17:49:51.803 に答える