Ansible 環境を求めて試行錯誤中
http://qiita.com/progre/items/ccc2d8c2ec7ae8a4ed61
初見でうまくいかなかった所のメモ
調査不足というか Vagrant まわりの知識不足で、自分の環境固有かもしれないので
プルリクとかは保留…
原因(多分)と結論
既に古い(適切な?)バージョンの Guest Additions が入っている場合は、
vagrant-vbguest をオフにしておかないと Guest Additions 最新版に更新されて環境がおかしくなるもよう
Vagrantfile に 1 行記述するだけでよい。
問題発生と調査の簡単な流れ
- vagrant up すると、/vagrant のマウントができてない
- ログを調べると「Guest Additions インストールに失敗してる」と言われる
- しかし、vbguest による Guest Additions は成功し、最新版が入ってる
- ログをもっと読むと、なんだか Guest 過去バージョンがどうのと書いてある
- エラーメッセージでググって出てきた対処法 「ゲスト環境から、Guest Additions のリビルド」
- 今回は無関係だった
- 逆に、バージョン不一致で Guest Additions を新しくする必要があればこちらの方法で合致するかも?
- vbguest plugin を一時的にオフにして vagrant up
- どうやら成功。
ログなど
マウント失敗した時の vagrant up ログ
mount: warning: /mnt seems to be mounted read-only.
Installing Virtualbox Guest Additions 4.3.10 - guest version is 4.2.0
...
An error occurred during installation of VirtualBox Guest Additions 4.3.10. Some functionality may not work as intended.
In most cases it is OK that the "Window System drivers" installation failed.
...
==> default: Mounting shared folders...
default: /vagrant => C:/Users/heignamerican/vagrant/template-vagrant
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`,dmode=775,fmode=664 vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant`,dmode=775,fmode=664 vagrant /vagrant
マウント失敗した時でも、VirtualBox Guest Additions の最新は入っている
$ vagrant ssh
vagrant@precise64:~$ sudo VBoxControl version
Oracle VM VirtualBox Guest Additions Command Line Management Interface Version 4.3.10
(C) 2008-2014 Oracle Corporation
All rights reserved.4.3.10r93012
vbguest plugin をオフ
config.vbguest.auto_update = false
を追加
Vagrant.configure("2") do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vbguest.auto_update = false
config.vm.network :public_network
config.vm.provision "shell", :path => "provision.sh"
config.vm.synced_folder ".", "/vagrant", :mount_options => ['dmode=775', 'fmode=664']
end
成功時のログ
==> default: Mounting shared folders...
default: /vagrant => C:/Users/heignamerican/vagrant/template-vagrant
...
==> default: PLAY [127.0.0.1] **************************************************************
==> default:
==> default: GATHERING FACTS ***************************************************************
==> default: ok: [127.0.0.1]
==> default:
==> default: PLAY RECAP ********************************************************************
==> default: 127.0.0.1 : ok=1 changed=0 unreachable=0
failed=0
成功時の VirtualBox Guest Additions
$ vagrant ssh
vagrant@precise64:~$ sudo VBoxControl version
Oracle VM VirtualBox Guest Additions Command Line Management Interface Version 4.2.0
(C) 2008-2012 Oracle Corporation
All rights reserved.4.2.0r80737
マウント
vagrant@precise64:~$ ls /vagrant
ansible provision.sh Vagrantfile