読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

Vagrantを使って、ホストとゲスト間でファイルを共有する

<スポンサーリンク>

タイトルの件は下の方に書いてある。

まずは基礎知識から。
■Vagrantfile
Vagrantはプロジェクト単位で設定を行う。
それぞれのプロジェクトは独立した作業環境を持ち、プロジェクトの存在はVagrantfileという名前のファイルで示される。

Vagrantfileはこんな感じで、いろいろ書かれているが、デフォルトではほとんどコメントアウトされているようだ。

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  # All Vagrant configuration is done here. The most common configuration
  # options are documented and commented below. For a complete reference,
  # please see the online documentation at vagrantup.com.

  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "centos"

end

Vagrantfileは、作業環境を生成するために必要なことを知るために、Vagrantによって読み込まれる。

■ボックス
Vagrantはベースのイメージのクローンを使って、利用可能な仮想マシンを素早く生成する仕組みをとっている。

C:\Users\XXX\.vagrant.d\boxes\centos\0\virtualbox

みたいなフォルダに、元となるイメージファイルが存在している。
このボックスはオペレーティングシステムの源である。Vagrantはこのボックスファイルを先行きの利用に備えて保存している。

必要なボックスは、Vagrantfileのconfig.vm.boxで指定される。

config.vm.box = "centos"

これはvagrant init としたときに要求したボックスである。

以下のように、config.vm.box_urlは、必要なボックスがユーザーのシステム内になかった場合に、それをどこで探せばいいかをVagrantに指示するもの。

config.vm.box_url = "http://domain.com/path/to/above.box"

インストールされているボックス群を表示するには、以下のvagrant box listを使う。

>vagrant box list
centos    (virtualbox)
precise64 (virtualbox)


Vagrantのマシンの状態を確認する場合

>vagrant status
Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.


Vagrantでは、ホストマシンと仮想マシンでファイルを同期できる。
デフォルトでは、仮想マシンの/vagrant以下が共有フォルダとなる。
これは、ホストのVagrantfileがあるフォルダである。

[vagrant@localhost vagrant]$ ll /vagrant/
total 5
-rwxrwxrwx 1 vagrant vagrant 4735 Mar 13 10:54 Vagrantfile

デフォルトの共有フォルダは、

config.vm.synced_folder ".", "/hoge"

のように設定を変えることができる。
第一引数は、ホスト(手元のPCのOS)が動いているマシンのフォルダ。
第二引数は、ゲスト(仮想マシン)のディレクトリ。

このフォルダが同期される。

ためしにやってみよう。
ホストの
C:\example\vagrant\centos以下に、
hoge.txtを作る。

で、Vagrantにゲストの再設定をさせるには、vagrant reloadコマンドを実行する必要があるので、

vagant reload

を実行して、ゲストにログイン。

こんな感じで、ファイルを共有することができた!

[vagrant@localhost hoge]$ ll /hoge
total 6
-rwxrwxrwx 1 vagrant vagrant    4 Mar 19 16:15 hoge.txt
-rwxrwxrwx 1 vagrant vagrant 4801 Mar 19 16:29 Vagrantfile
[vagrant@localhost hoge]$ cat hoge.txt
hoge

実践 Vagrant

実践 Vagrant

もうこの本は100%バイブルだと思う。
最高。