Vagrantで作った仮想マシンとホストPC側で、複数の共有ディレクトリを作り、動作確認をしていきます。
※ 本ページはプロモーションが含まれています。
Vagrantで仮想マシンを作成・管理して、仮想マシン上で例えばウェブアプリやウェブサイトの開発をすすめていく場合、開発自体はホスト側のディレクトリ上でIDE(統合開発環境)などを使って、コーディングやプログラミングをする方が便利です。
その場合、仮想マシン(ゲストPC)側とホストPC側で共有ディレクトリを作っておく事が必要になります。
ここでは、Vagrantで作った仮想マシンとホストPC側で、複数の共有ディレクトリのを設定して動作確認をしていきます。
◾️環境とバージョン情報です。
ホストPCのOS:macOS Big Sur(バージョン11.1)
Vagrant 2.2.7
VirtualBox 6.1.16
$ vagrant -v
Vagrant 2.2.7
$ VirtualBox -h
Oracle VM VirtualBox VM Selector v6.1.16
VagrantとVirtualBoxをインストールしてある事が前提で説明していきます。
まずは仮想マシンを用意します。自分の環境にある適当なBoxから仮想マシンを作れば良いと思います。
ここではhashicorp/bionic64(Ubuntu18.04のBox)を使用します。
hashicorp/bionic64が自分のVagrant環境にない場合、まずはvagrant box addでBoxのダウンロードをします。
(*途中でどの仮想マシンを使うかを聞かれますが、ここでは"2"のvirtualboxを選択しました。)
$ vagrant box add hashicorp/bionic64
==> box: Loading metadata for box 'hashicorp/bionic64'
box: URL: https://vagrantcloud.com/hashicorp/bionic64
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.
1) hyperv
2) virtualbox
3) vmware_desktop
Enter your choice: 2
==> box: Adding box 'hashicorp/bionic64' (v1.0.282) for provider: virtualbox
box: Downloading: https://vagrantcloud.com/hashicorp/boxes/bionic64/versions/1.0.282/providers/virtualbox.box
box: Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com
==> box: Successfully added box 'hashicorp/bionic64' (v1.0.282) for 'virtualbox'!
ダウンロードして、'hashicorp/bionic64'Boxの追加ができました! $ vagrant box list
bento/centos-6.8 (virtualbox, 2.3.4)
hashicorp/bionic64 (virtualbox, 1.0.282)
precise32 (virtualbox, 0)
Boxの一覧に、hashicorp/bionic64があります。
それでは適当なディレクトリ上で、vagrant initを実行してVagrantfileを作成し、Vagrant環境を初期化します。
$ vagrant init hashicorp/bionic64
そして、作成されたVagrantfileを以下のように編集します(見やすくするために、コメント文はすべて削除しています)。
$ cat Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/bionic64"
config.vm.synced_folder "data/", "/vagrant_data/data1"
config.vm.synced_folder "data2/", "/vagrant_data/data2"
config.vm.synced_folder "data3/", "/vagrant_data/data3"
end
共有ディレクトリの設定は、config.vm.synced_folderメソッドを使います。Vagrantfileを編集したら、ホストPC側の共有ディレクトリ3つを作り、そこに適当なファイルを作っておきます。
(*共有ディレクトリは、Vagrantfileファイルがあるディレクトリで作ります。)
$ mkdir data
$ mkdir data2
$ mkdir data3
$ echo from hostPC >> data/data.txt
$ echo from hostPC >> data2/data2.txt
$ echo from hostPC >> data3/data3.txt
$ cat data/data.txt
from hostPC
$ cat data2/data2.txt
from hostPC
$ cat data3/data3.txt
from hostPC
Vagrantfileで設定したホストPC側の共有ディレクトリを事前に作っておかないと、仮想マシン起動時(vagrant upコマンド実行時)にエラーが出て起動ができません。
これで準備ができましたので、仮想マシンを作成して起動します。
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'hashicorp/bionic64'...
〜
==> default: Mounting shared folders...
default: /vagrant => /Users/hogeuser/MyVagrant/tmp
default: /vagrant_data/data1 => /Users/hogeuser/MyVagrant/tmp/data
default: /vagrant_data/data2 => /Users/hogeuser/MyVagrant/tmp/data2
default: /vagrant_data/data3 => /Users/hogeuser/MyVagrant/tmp/data3
起動できました!それでは、仮想マシンにssh接続して共有ディレクトリの確認をしてみます。
$ vagrant ssh
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-58-generic x86_64)
〜
vagrant@vagrant:~$ ls /vagrant_data/
data1 data2 data3
vagrant@vagrant:~$ cat /vagrant_data/data1/data.txt
from hostPC
vagrant@vagrant:~$ cat /vagrant_data/data2/data2.txt
from hostPC
vagrant@vagrant:~$ cat /vagrant_data/data3/data3.txt
from hostPC
Vagrantfileのconfig.vm.synced_folderメソッドで指定通りに、共有ディレクトリが3つできていて、ホストPC側で作ったファイルもあります!
以上簡単でしたが、Vagrantfileで共有ディレクトリの設定と動作確認をしてみました。