あったんです。sync機能。
今の会社ではじめて知りました。もうファイル転送ツールを使わなくていい!やったー!
どういうこと?
vagrantはあれですね。ローカル仮想環境をつくります。
つまりパソコンの中に、もう1台のパソコンをつくります。
外側のパソコンと、内側のパソコンは、まったく別な環境なわけですね。
だから、ファイルのやりとりには、通常の方法が使えません。ファイルをドラッグしてコピーしたり、ターミナルでmvコマンドを打って移動したりできないわけです。(たぶん)
そのためドットインストールでは、Cyberduckというファイル転送ツールを利用していました。
ただ、このファイル転送ツールを使うのすらめんどくさいわけですよね。。(怠慢)
sync様
そこでvagrantのsync機能です。
外側のパソコンのある場所と、内側のパソコンのある場所を同期することができます。ワームホールみたいな感じですね。
設定してみる
さっそく設定してみたいと思います。
ディレクトリとファイルはこんな感じ。今は外側のパソコンにいます。
まずは同期するためのディレクトリを作成します。
srcという名前で作成しました。
次にvagrantの設定ファイルであるVagrantfileを編集します。
40行目にあるこの項目を書き換えます。
このように書き換えました。(詳しい解説は参照URLをごらんください)
自動で同期させるために、以下のコマンドを実行します。
おっ…!
いけそう!
普通にエラー出たー!
(ここから横道にそれて、エラーとの戦いが始まります。同期についてのみ知りたい方は、「同期確認」までお進みください)
原因はこれっぽい???
vagrantに入って、リビルドします。
普通に[失敗]って出てるけど大丈夫なのかな…w
vagrantをexitして、vagrant halt & vagrant up
\(^o^)/
VirtualBoxを立ち上げてみます。
あれ?なんか出てる。
新しいバージョン入れろや( ー`дー´) ってことかな??
入れた。(90MBもあった)
ふたたび$ vagrant up
なんかもっとめんどくさいことに。
Vagrant「ちょっと!VirtualBoxが新しすぎ!」
って感じでしょうか。古いバージョンに戻すように言われました。
せっかくなので、Vagrantの方を新しくしてみます。
アップしました。バージョン1.7.2から、1.7.4になりました。(そんなに変わってない)
もう1度、$ vagrant up
おー!きました。(普通のことなのに嬉しい)
$ vagrant reload
うおおおおおおおおおお!
どうやらバージョン関連は関係なかったっぽいです。
これかな??
ちなみに、エラーログを確認をしたところ、以下のメッセージが。
unable to find the sources of your current Linux kernel.
えっ、そんなことあるの?
というわけで、恐る恐るカーネルアップデートしました。
$ sudo yum -y update kernel
アップデートが終わったら、kernel-develをインストールします。(ここらへんよくわかってない。後で調べる)
$ sudo yum -y install kernel-devel kernel-headers dkms gcc gcc-c++
いったん、OSを再起動(exit)して、ふたたび立ち上げます。(vagrant up & vagrant ssh)
今一度、リビルド!
$ sudo /etc/init.d/vboxadd setup
おっ???変化あり。
OpenGLが失敗??これあんまり関係ない気がする…。先に進もう!
ホスト側(外側のパソコン)で、vagrantをリロードします。
$ vagrant reload
(同期設定の箇所を抜粋)
おおおー!エラーなくなった!
最後にvagrant自動同期コマンドを打ちます!
おおおお!
ちゃんと、指定したディレクトリをウォッチしてくれてるっぽい!
救世主:CentOSへGuest Additionsをインストールしたときのエラー対処方法
同期確認
きちんと同期できているかどうか、確認します。
こちらがホスト(外側のパソコン)です。
こちらがゲスト(内側のパソコン)です。
設定では、これらのディレクトリが同期しているはず…!
ゲスト(外側のパソコン)側で、ファイルを新規作成します。
ホスト(内側のパソコン)側で確認。
!!!!
さっきまで空だったのに、ファイルが出現しました!すごい!
まとめ
思わぬトラブルが発生してしまいましたが、いい勉強になりました。
そして、vagrantの同期設定、すごい!いままでファイル転送していた自分が恥ずかしいです…///
これからは、バンバン同期を使っていこうと思います。