#navi_header|技術| 開発用VMのパッケージングとデプロイを簡略化してくれるVagrantのメモです。 - Vagrant -- http://www.vagrantup.com/ - Vagrant Documentation (2014-05時点) -- http://docs.vagrantup.com/v2/ 紹介記事: - 仮想環境構築ツール「Vagrant」で開発環境を仮想マシン上に自動作成する - さくらのナレッジ - Part 2 -- http://knowledge.sakura.ad.jp/tech/1552/2/ - 今すぐVagrantを始めよう | 株式会社シンメトリック公式ブログ | -- http://www.symmetric.co.jp/blog/archives/533 - Vagrant開発者 Mitchell Hashimoto氏に聞いた:「Vagrant」って何ぞ?(・o・) - @IT -- http://www.atmarkit.co.jp/ait/articles/1307/22/news076.html #more|| ---- #outline|| ---- * 勉強メモ - vagrantコマンドは、引数にVMの名前やIDなど全く指定せずに実行できるが、どうやって区別してるのか? -- "vagrant init"したディレクトリに、".vagrant"というディレクトリが作成され、その中でProvider用のIDが入ってるっぽい? -- なので、単純にカレントディレクトリのVagrantfileや".vagrant"ディレクトリ辺りを参照して区別してると想像。 - "vagrant ssh" は内部的にはsshクライアントを実行するので、Windowsの場合はCygwinなりMinGWなりでsshクライアント(ssh.exeなど)を導入しておきPATH通しておく必要がある。 -- "vagrant ssh-config" で確認すると、そのVagrant用のSSH接続設定が、ssh_config形式で確認できる。 - "vagrant provision" すると、内部的にはsudoしてroot権限でshellを実行してる。 - "config.vm.provision" は、書けば書いた分だけ上から順繰りに実行してく。 - "vagrant up" した後で、SSHログイン中から手動でshutdownしたり、そのあとVirtualBoxマネージャから手動でUPしたり、手動でVMの設定変更したりして、その後 vagrant up したらどうなるか? -- 基本的には、手動で変更した設定はそのまま維持される。手動でVMをshutdownしたのを vagrant up でUPできるし、手動でUPしたVMを vagrant halt で落とすことも出来る。(vagrant側でVMのUP/DOWN状態を管理してて、手動操作するとズレてしまって以降、エラーとなってしまう・・・ようなことは、無い。) -- ただし、Vagrantfileでprovider=virtualboxで独自の設定(VBoxManageのオプション設定)を行っている場合は、vagrant up するときにVagrantfile中のVBoxManageのオプション設定が適用されてしまう。(VBoxMangeオプションをカスタマイズしていない項目についてはそのまんま。) --- 例:Vagrantfileでmemoryサイズだけを指定してる場合・・・ --- memoryとは関係しない設定を手動で変更:vagrant up しても、それはVagrantfileで指定されてないのでそのまま。 --- memoryサイズを手動で変更:vagrant up すると、Vagrantfile中で指定されているのでそちらで上書きされてしまう。 -- VM名を手動で変更しても、Vagrantfileで指定されていれば戻されてしまう。 --- VM名を好き勝手変更しても、内部のIDかなにかでひも付けされているらしく、vagrantコマンドで正常に区別出来る。特に指定しなければ、VagrantfileではVM名までは指定せず、作成した後に個別の開発者ごとに好き勝手に変えてもらうのでも良いのだろう。 - VirtualBoxを使う場合、Vagrantfile中でVM設定をカスタマイズするためのパラメータは、基本的にVBoxManageのmodifyvmコマンドのオプション指定と同じ。 -- Chapter 8. VBoxManage : http://www.virtualbox.org/manual/ch08.html 例: #pre||> config.vm.provider "virtualbox" do |vb| vb.name = "t3_precise64_demo" # Don't boot with headless mode vb.gui = true # Use VBoxManage to customize the VM. For example to change memory: vb.customize [ "modifyvm", :id, "--memory", "2048", "--vram", "64", "--cpus", "2", "--audio", "none", "--clipboard", "bidirectional", "--usb", "off", "--usbehci", "off", "--nic1", "nat", "--nictype1", "82540EM", "--cableconnected1", "on", "--nic2", "hostonly", "--nictype2", "82540EM", "--cableconnected2", "on", "--hostonlyadapter2", "VirtualBox Host-Only Ethernet Adapter", ] end ||< - 2つ以上のVMを同時に"vagrant up"すると、SSHのポートフォワードはどうなるか? -- VirtualBoxを例に実験してみたところ、1番めにvagrant upしたのはホストの2222が22番にフォワードされ、2番めにvagrant upしたのは、ホストの2200が22番にフォワードされた。 -- 結果として、ポートフォワードが衝突することは無く、"vagrant ssh" でもそれぞれの環境に正常に接続できた。 VirtualBox上での実験例, 一個目のvagrant up:→ 127.0.0.1:2222 が 22にフォワードされた。 #pre||> t9> vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Importing base box 'ubuntu-1204-lts-t1'... ==> default: Matching MAC address for NAT networking... ==> default: Setting the name of the VM: ubuntu1204lts-test2 ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat ==> default: Forwarding ports... default: 22 => 2222 (adapter 1) ==> default: Running 'pre-boot' VM customizations... ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 ... ||< VirtualBox上での実験例, 二個目のvagrant up:→ 127.0.0.1:2200 が 22にフォワードされた。 #pre||> t8> vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Clearing any previously set forwarded ports... ==> default: Fixed port collision for 22 => 2222. Now on port 2200. ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat ==> default: Forwarding ports... default: 22 => 2200 (adapter 1) ==> default: Running 'pre-boot' VM customizations... ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2200 ... ||< - 同じboxで"vagrant init"して、特にprovider用の名前などカスタマイズも行っていない状態で、2つのVMを"vagrant up"するとどうなるか? -- VirtualBoxを例に実験してみたところ、"vagrant init"したディレクトリ名 + ランダムな数値(unixタイムっぽいが)がVMの名前に自動設定されたため、衝突しなかった。 -- →こんな感じに、VM名が衝突してない。 --- &image(yb://images/20140506_devops_vagrant_memo/same_box.png) VirtualBoxでのネットワーク設定メモ: - [Vagrant] Vagrant で複数のVM を立ち上げて、お互いに通信できるようにするには [VirtualBox] - Qiita -- http://qiita.com/sho7650/items/cf5a586713f0aec86dc0 * plugin 参考: - vagrantの便利に使えるプラグイン6選 - Qiita -- http://qiita.com/succi0303/items/e06bca7db5a0c3de96af 以下、実際に試してみたもの。 (試したホスト環境:Win7 Pro 64bit 日本語版 + VirtualBox 4.3.12 + Vagrant 1.6.3) ** sahara - https://github.com/jedi4ever/sahara - Vagrant plugin の Sahara をインストールして使ってみる - リジェクトされました -- http://ri.hateblo.jp/entry/2013/10/29/013359 インストール: > vagrant plugin install sahara "vagrant up"したディレクトリにCDして、制御。 > vagrant sandbox on → sandbox専用のsnapshotが作成される。 > vagrant sandbox rollback → ロールバックされる。snapshotからのVM再起動になる。 > vagrant sandbox commit → commitされる。特にVM再起動は起こらない。 > vagrant sandbox off → sandbox専用のsnapshotが削除され、sandboxモードが終了する。 ※snapshotが削除されるため、事実上、暗黙的にcommitされた形になる。 > vagrant sandbox status → 今sandbox中かどうか確認。 なお、上記コマンドはすべて、仮想マシンがON中に操作できる。 仮想マシンOFF中でも"vagrant sandbox on"はできたが、意味があるかどうかは不明。 "vagrant sandbox rollback"で再起動が発生する点に注意。 参考: - "vagrant sandbox on" する前 or "vagrant sandbox off" した後 -- &image(yb://images/20140506_devops_vagrant_memo/sahara01_after_sandbox_off.png) - "vagrant sandbox on" した後 → sandbox専用のsnapshotが作成されている。 -- &image(yb://images/20140506_devops_vagrant_memo/sahara01_after_sandbox_on.png) ** vagrant-vbox-snapshot - https://github.com/dergachev/vagrant-vbox-snapshot インストール: > vagrant plugin install vagrant-vbox-snapshot "vagrant up"したディレクトリにCDして、制御。 VirtualBoxのスナップショットを制御するプラグイン。VirtualBoxのGUIマネージャからスナップショットを制御するのと同等。 ** vagrant-global-status - https://github.com/fgrehm/vagrant-global-status → Vagrant 1.6になり、本体に統合された: #pre||> > vagrant global-status id name provider state directory ------------------------------------------------------------------------ 2e8feba default virtualbox running c:/work/tmp/vagrant_ex/t8 f310a6e default virtualbox running c:/work/tmp/vagrant_ex/t9 The above shows information about all known Vagrant environments on this machine. This data is cached and may not be completely up-to-date. To interact with any of the machines, you can go to that directory and run Vagrant, or you can use the ID directly with Vagrant commands from any directory. For example: "vagrant destroy 1a2b3c4d" ||< * boxの作成 Ubuntu 12.04 LTS 64bit版 (2014-05時点では既に 14系列でLTSが始まってて今更ではありますが・・・) でboxを作成してみたのでメモ。 2014-05に試した環境: Host: Win7SP1 64bit 日本語版 VirtualBox: 4.3.10 Vagrant: 1.5.4 ** 参考資料 Vagrant公式: - Creating a Base Box - Vagrant Documentation -- http://docs.vagrantup.com/v2/boxes/base.html --- VMの種類によらない、共通のポイント解説。 - Creating a Base Box - VirtualBox Provider - Vagrant Documentation -- http://docs.vagrantup.com/v2/virtualbox/boxes.html --- VirtualBox特有の作業について。Ubuntuを例に解説あり。 #amazon||> ||< これのChapter 7 が、Ubuntu 13でのVirtualBoxでのbox作成手順の解説になってます。 - Ubuntu 13.04 の vagrant 用 box を作る - Qiita -- http://qiita.com/amedama/items/459a9187a116ba90016c - VBoxManageを使ってVagrant Boxを作成する方法(第1回)~VBoxManageを使って仮想マシンを作成する | Groove Labo -- http://success.tracpath.com/blog/2013/12/11/vboxmanage%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6vagrant-box%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E7%AC%AC%EF%BC%91%E5%9B%9E%EF%BD%9Evboxmanage%E3%82%92%E4%BD%BF%E3%81%A3/ - VBoxManageを使ってVagrant Boxを作成する方法(第2回)~仮想マシンをVagrant化する | Groove Labo -- http://success.tracpath.com/blog/2013/12/12/vboxmanage%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6vagrant-box%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E7%AC%AC%EF%BC%92%E5%9B%9E%EF%BD%9E%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7/ - VBoxManageを使ってVagrant Boxを作成する方法(第3回)~仮想マシンをVagrant Boxに変換する | Groove Labo -- http://success.tracpath.com/blog/2013/12/13/vboxmanage%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6vagrant-box%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E7%AC%AC%EF%BC%93%E5%9B%9E%EF%BD%9E%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7/ - Vagrantを使ったカスタムBoxの作成と配布 | Groove Labo -- http://success.tracpath.com/blog/2013/12/18/vagrant%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0box%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%A8%E9%85%8D%E5%B8%83/ これらの参考資料からつぎはぎして、ポイントだけ抜書きするとこんな流れになりました。 ** "Box"ファイルはOVFやOVAとどう違うのか? 初期のVagrantはVirtualBoxのマシンをexportしたのをtarにまとめてただけだったようですが、複数のproviderをサポートするようになり、OVAに近い形で、providerごとのVMイメージ+Vagrantが使うmetadata.jsonをtarで固めたファイルになったようです。OVA, OVFと同一ではありませんが、それと似た構成にはなってるそうです。 - Box File Format - Vagrant Documentation -- http://docs.vagrantup.com/v2/boxes/format.html *** OVF, OVAとは - Linuxキーワード - OVF:ITpro -- http://itpro.nikkeibp.co.jp/article/Keyword/20090410/328215/ - 備忘録:オープン仮想化フォーマット(OVF:Open Virtual Format):吉政忠志のベンチャービジネス千里眼:ITmedia オルタナティブ・ブログ -- http://blogs.itmedia.co.jp/yoshimasa/2010/07/ovfopen-virtual.html - OVF? OVA? VMDK? – File Formats and Tools for Virtualization -- http://spin.atomicobject.com/2013/06/03/ovf-virtual-machine/ --- OVF, OVA, 仮想マシンのディスクイメージの種類などが簡潔にまとまってた。 ** 1. VMの作成 "Creating Development Environments With Vagrant"版を見ながら作成: - VM名は "vagrant-ubuntu-raring" にしておく。 - 360MBのメモリが推奨っぽいこと書かれてたので、360MBで作成。 -- 最新のVagrantのドキュメントでもこれが推奨なのかは未確認。 - 同書籍ではHDDとして40GBと書かれてるが、面倒くさいしそこまでデフォルトインストールじゃ使わないしお試しなので、8GBに。なお、サイズ可変としておいて、最初から8GBのサイズでは作らない。 - Ubuntu 12.04 LTSをインストール。サーバ用のiso使ったので、GUIは入らない。 - ユーザを追加するときに、ユーザ名 vagrant, パスワード vagrant で追加。これは、Vagranのドキュメントでも指定されてる。 - OpenSSH サービスだけ有効化してインストール。 *** Box作成時のポイント:ディスクファイルタイプは"VMDK"一択 初期のVagrantであればVirtualBoxのみを考えれば良かったので"VDI"でも良かったようだが、最近になって複数のProviderをサポートするようになり、互換性のある"VMDK"の選択が推奨されるようだ。 &image(yb://images/20140506_devops_vagrant_memo/point01_diskfiletype_mustbe_vmdk.png) - virtualbox - why does vagrant uses vmdk disk format as standard? - Stack Overflow -- http://stackoverflow.com/questions/18307911/why-does-vagrant-uses-vmdk-disk-format-as-standard - virtualbox - How can I increase disk size on a Vagrant VM? - Ask Ubuntu -- http://askubuntu.com/questions/317338/how-can-i-increase-disk-size-on-a-vagrant-vm Vagrantのbox作成ドキュメントでは"VMDK"で「なければならない」と明記されてる箇所は見つけられなかった。こちらに、Boxファイルのアーカイブ内容の説明に".vmdk"とある: https://docs.vagrantup.com/v2/virtualbox/boxes.html ** 2. FirewallとSELinuxの無効化 今回のUbuntu 12.04 LTSだと、デフォルトはSELinuxはインストールされず、Firewall(ufw)もinactiveになってるので、特に設定変更は必要ない。 CentOSだと・・・ - "service iptables stop", "chkconfig iptables off" でFirewall停止&自動起動OFF - "setenforce 0", "/etc/sysconfig/selinux" 編集してSELINUXTYPE=disabled、さらに "/etc/grub.conf" 編集して"enforcing=0"をkernelパラメータに追加でSELinuxを無効化。 ** 3. rootユーザのパスワードを "vagrant" に変更 実際はこれを使うことは無いけど、Vagrantのboxを作るときのお作法らしい。Vagrantの公式ドキュメントにも載ってる。多分こうしておけば、どんなbox使っても、rootになる時に困らないよね、という意図か。 #pre||> $ sudo su - # passwd ("vagrant"に設定) ||< ** 4. MACアドレス変更によりNICデバイスがずれる現象を補正 vagrant initとかでVM設定のMACアドレスが変化する場合がある。最近のLinuxだと"/etc/udev/rules.d/70-persistent-net.rules" というファイルにどのMACアドレスがどのethNか、というのが自動保存されて永続化されてしまうため、MACアドレスが変わるたびにethNが増えていってしまい、設定作業の手間が増えてしまう。 そこで、以下のように "70-persistent-net.rules" を "/dev/null" のシンボリックリンクとして、自動保存しようとしても保存されず、読み出すことも出来ないようにしておく。 #pre||> $ cd /etc/udev/rules.d/ $ sudo mv 70-persistent-net.rules .70-persistent-net.rules $ sudo ln -s /dev/null 70-persistent-net.rules ||< ** 5. パスワード無しでsudoできるように調整 ・"admin"グループを新規作成して、"vagrant"ユーザを追加する。(Vagrant公式のprecise64等でのお作法。ただし、最終的にvagrantユーザがパスワード無しでsudo出来るようになっていれば良いので、必ずしもこのグループ設定を行う必要はない。つまり、Vagrantは"admin"グループに依存していない) #pre||> $ sudo groupadd admin $ sudo usermod -a -G admin vagrant ||< ・sudoersファイルを調整。 $ sudo visudo 調整ポイント1: Defaults env_keep+="SSH_AUTH_SOCK" ファイルの先頭くらいに追加するらしい。SSHポートフォワーディング等をsudo越しに使った時に、SSHエージェント側で接続済みのコネクションを使えるよう、環境変数を引き継げるよう設定。("Creating Development Environments With Vagrant"で指示されてる設定。Vagrant公式ドキュメントや他の参考資料では、特にこの設定は指定されていない) - sudoコマンドと環境変数 - 試験運用中なLinux備忘録 -- http://d.hatena.ne.jp/kakurasan/20070723/p1 - SSHのエージェントフォワーディングを「sudo」の後でも引き継ぐ - ngの日記 -- http://ngyuki.hatenablog.com/entry/20120508/p1 調整ポイント2:(全参考資料共通) %admin ALL=(ALL) NOPASSWD: ALL - ファイル末尾に置くなどして、必ずこれが使われるようにしておく。 - ''再起動後にログインしなおして、本当にパスワード無しでsudoできることをテストしておく。'' - 今回は"admin"グループを追加してるのでこういう書き方にしてるだけ。以下のように"vagrant"ユーザをピンポイントでNOPASSWD設定しても良い。最終的にvagrantユーザでパスワード無しでsudoできれば良い。 vagrant ALL=NOPASSWD:ALL 調整ポイント3:(全参考資料共通) Default requiretty →入っていれば、コメントアウトしておく。もし無ければ、デフォルトoffなので特に弄る必要はない。 ** 6. Vagrant共通の、"vagrant ssh"用の公開鍵を追加 $ mkdir ~/.ssh $ chmod 700 ~/.ssh $ wget https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys ** 7. SSH接続した時にsshd側でのDNSの逆引きを無効化 sudo vi /etc/ssh/sshd_config →以下の行を設定。(デフォルトはYESなので、もし設定がなければ明示的に追記する必要あり。) UseDNS no 参考: - SSHD_CONFIG (5) -- http://www.unixuser.org/~euske/doc/openssh/jman/sshd_config.html - 初心者がWEB開発に挑戦 UbuntuにSSHサーバーをインストール -- http://naka7772.blog.fc2.com/blog-entry-237.html ** 8. VirtualBox Guest Additionsの導入 "Creating Development Environments With Vagrant"版: $ sudo apt-get update $ sudo apt-get install linux-headers-$(uname -r) build-essential Vagrantの公式ドキュメントから: $ sudo apt-get install linux-headers-generic build-essential dkms 最終的に、kernelのヘッダファイルと、build-essential, dkms が入れば良いのだろう。 以降のビルド操作はVagrant公式ドキュメントの通り。 $ sudo mount /dev/cdrom /media/cdrom $ sudo sh /media/cdrom/VBoxLinuxAdditions.run ** 9. キャッシュファイルなどを削除 "Creating Development Environments With Vagrant"版: $ rm -rf /tmp/* $ sudo apt-get clean 他にも、boxファイルサイズ削減のため未使用領域をゼロ埋めしたり、manページのキャッシュを削除するなど色々工夫があるらしい。 $ sudo dd if=/dev/zero of=/EMPTY bs=1M $ sudo rm -f /EMPTY ** 10. パッケージングと動作確認 vagrant package --base VM名 -> vagrant package --base vagrant-ubuntu-raring ==> vagrant-ubuntu-raring: Exporting VM... ==> vagrant-ubuntu-raring: Compressing package to: c:/work/tmp/vagrant_ex/box/package.box package.boxのファイルサイズは460MBほどになった。8GBの可変サイズでDisk作ったのでこんなもんかな? "vagrant box add" してみる。 #pre||> > cd c:\work\tmp\vagrant_ex\box > vagrant box add ubuntu-1204-lts-t1 package.box ==> box: Adding box 'ubuntu-1204-lts-t1' (v0) for provider: box: Downloading: file://c:/work/tmp/vagrant_ex/box/package.box box: Progress: 100% (Rate: 72.4M/s, Estimated time remaining: --:--:--) ==> box: Successfully added box 'ubuntu-1204-lts-t1' (v0) for 'virtualbox'! > vagrant box list -i hashicorp/precise32 (virtualbox, 1.0.0) hashicorp/precise64 (virtualbox, 1.1.0) ubuntu-1204-lts-t1 (virtualbox, 0) > cd c:\work\tmp\vagrant_ex > mkdir box_test > cd box_test > vagrant init ubuntu-1204-lts-t1 A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant. > vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Importing base box 'ubuntu-1204-lts-t1'... ==> default: Matching MAC address for NAT networking... ==> default: Setting the name of the VM: box_test_default_1399303793682_85095 ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat ==> default: Forwarding ports... default: 22 => 2222 (adapter 1) ==> 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: Warning: Remote connection disconnect. Retrying... ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... ==> default: Mounting shared folders... default: /vagrant => C:/work/tmp/vagrant_ex/box_test 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` /vagrant /vagrant mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` /vagrant /vagrant ||< 最後に"Synced Folders"の "/vagrant" のmountでエラーが発生してはいるが、この時点で "vagrant ssh" でログイン出来るようになっていた。 ** 11. "/vagrant" mountエラー と VirtualBox 4.3.10 での対処 "/vagrant" のmountエラーは、box作成時にインストールしたGuest Additionsのバージョンと、実際に動かすVirtualBoxのバージョンとでズレがあったりすると、発生する場合があるらしい。 一般的な対策としては以下のパターンが見つかった: - VM中のGuest Additionsを最新のバージョンに更新する。 -- VirtualBoxの方から最新版を入れなおしたり、 -- ディストリビューションによってはパッケージで提供されてたりするのでそちらを使ってみたり、 -- "vagrant-vbguest" というvagrant プラグインを入れて自動更新されるようにしたりする。 - Guest Additionsを最新にしたら、 "sudo /etc/init.d/vboxadd setup" してモジュールをビルド・インストールし直す。 参考: - ubuntu - Vagrant error : Failed to mount folders in Linux guest - Stack Overflow -- http://stackoverflow.com/questions/22717428/vagrant-error-failed-to-mount-folders-in-linux-guest - Vagrant で共有フォルダが使用できなくなったので解決メモ — kashew_nuts-blog -- http://kashewnuts.bitbucket.org/2013/08/25/vagrantvbguest.html - ヾ(o゚ω゚o)ノ゙Vagrantの共有ディレクトリ設定でものすっごい躓いた! - Qiita -- http://qiita.com/harapeko_wktk/items/72985bfccaae60c69384 - vagrantでmountエラーの解決方法 - Qiita -- http://qiita.com/osamu1203/items/10e19c74c912d303ca0b 2014-05時点: ''VirtualBox 4.3.10 では、以下のissueの対策例に従う'' : - Vagrant can't mount shared folder in VirtualBox 4.3.10 -- https://github.com/mitchellh/vagrant/issues/3341 vagrant sshでログイン後: $ sudo /etc/init.d/vboxadd setup $ sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions ** 12. Windowsホストで1.5系をインストールした状態で1.6系を上書きインストールすると"package"コマンドが失敗するようになる Windowsホストで1.5系をインストールした状態で1.6系を上書きインストールしてみたら、"package"コマンドで"bsdtar"コマンドが見つからず、失敗するようになった。 参考: - https://github.com/mitchellh/vagrant/issues/3674 - http://tetsuwo.tumblr.com/post/85636464262/vagrant-install-setting 一旦Vagrantをアンインストールしてクリーンな状態にしてから、1.6系をインストールすれば問題は解消されたので、今後のアップデート時も注意する必要がありそう。 #navi_footer|技術|