「仮想環境とローカルでファイルを共有(mounting)ができない」

久しぶりすぎます。。

人材サービスを始めるために、半年ぶりにRailsでウェブサイトを立ち上げるために、ローカル環境の構築で相当苦労したので書きます。

問題は、

「仮想環境とローカルでファイルを共有(mounting)ができない」

以前まではFTPツール(Cyberduck)を使っていたが、容量を使うため作業効率はものすごく悪くなるため、どうしてもローカルと同期したかった。

Ⅰ. 基本的なアプローチを踏み、課題を解決。

①dotinstallでvagrantの仕組みを再理解

以前プログラマーの方が、「自分で理解していない物は使うな」とご指摘くださり、その原則に従い徹底的に基本を理解した。

②問題を言語化し、Webで検索

言語化!!これ重要です。初心者は問題と逸脱したことを調べている場合があります。(全ての物事において自分の課題です。「脳で整理してから物事を始める」、ということです。)

こちらのサイトにお世話になりました。

qiita.com

 

Ⅱ. 解決法

VagrantVirtualboxのバージョンをウェブの記事で紹介されてあるバージョンに再インストールし直し、ゲスト側のカーネルをアップデート(上のサイトの手順3)

- バージョン

OS: Windows10

Vagrant: 1.9.1

Virtualbox: 5.1.14

ゲスト側OS: CentOS 7.3

 

Ⅲ. 今回学んだこと

1.Vagrantの仕組み

Vagrantは仮想環境の構築とホストシステムとの共有を簡単にするツール。仮想環境はVirtualboxやEC2などがある。

・重要なのはVagrantはあくまで箱、空間でしかないこと。ここにBox(OS)をインストールし、そのOSが仮想環境を決定する。

・「ホスト」はローカル、「ゲスト」は仮想環境内のことを指す。vbguestというプラグインがゲストとホストのVirtualboxのバージョンを同じにする。なぜこの問題が起きてしまうかというと、Boxが作られたVirtualboxとホストのバージョンが違うため。(Boxのtutorialとかにどのvirtualboxを使ったのかとかかいてあるのかな?)

・コマンド:vagrant box add <bento/centos7.3>でboxを追加。vagrant init <boxを指定>で環境構築、vagrantfileが作成される。vagrant upで仮想環境内接続。

・ホスト:/<folder with vagrantfile> ゲスト: /home/vagrantでファイルが共有される。

2. メソッド

・バージョンの違いはどうにもならないことだから、ネットで成功したバージョンを探してそれに従う。

・問題を言語化してから取り組む!