Vagrant – インストール方法(新しい仮想マシンを作成する)

Vagrantを使って新しい仮想マシンのUbuntu16.04を作成する方法です。

環境

  • macOS Sierra
  • VirtualBox 5.1.28
  • Vagrant 2.0.0

1. インストール

VagrantはVirtualBox上で動作します。公式サイトからVirtualBoxパッケージをダウンロードし、インストールします。

https://www.virtualbox.org/wiki/Downloads

次に公式サイトからVagrantパッケージをダウンロードし、インストールします。

https://www.vagrantup.com/downloads.html

2. セットアップ

この記事では~/vagrant/masterフォルダで作業します。

vagrant initを実行します。Vagrantfile(Vagrantのセットアップ情報ファイル)が作られます。

$ cd ~/vagrant/master
$ vagrant init

次のサイトでインストールしたい仮想マシンBOXを探します。リンクを開くとVagrantfileへのBOXの指定の仕方が表示されます。

https://app.vagrantup.com/boxes/search

Vagrantfileを開き、仮想マシンのBOX名を指定します。ここではUbuntu16.04用のBOXを使用します。

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/xenial64"
end

vagrant upで仮想マシンを起動できます。

$ vagrant up

仮想マシンにログインするにはvagrant sshを使います。

$ vagrant ssh

仮想マシンを終了するときはvagrant haltです。

$ vagrant halt

3. その他のセットアップ

3-1. プラグイン

IPアドレスにホスト名を付けるためのvagrant-hostsupdaterプラグインと、共有フォルダのマウントエラーを解決するvagrant-vbguestプラグインをインストールします。

$ vagrant plugin install vagrant-hostsupdater
$ vagrant plugin install vagrant-vbguest

3-2. IPアドレス

プライベートIPアドレスを指定します。

@Vagrantfile

 config.vm.network "private_network", ip: "192.168.33.10"

3-3. ホスト名

IPアドレスにホスト名を付けます。vm.hostnamehostsupdater.aliasesを使うといくつもホスト名を付けられます。

@Vagrantfile

 config.vm.hostname = "a.vagrant.test"
 config.hostsupdater.aliases = ["b.vagrant.test", "c.vagrant.test", "d.vagrant.test"]

3-4. 共有フォルダ

仮想マシンとホストとの間に共有フォルダを設けます。第一引数はホスト(Mac)側のフォルダを指定し、第二引数は仮想マシン(Ubuntu)側のフォルダを指定します。ホスト側のフォルダは事前に作成しておきます。

@Vagrantfile

 config.vm.synced_folder "sync", "/home/vagrant/sync"

注) 仮想マシンの”/home/vagrant”を共有フォルダにすると、元々”/home/vagrant”に置かれていたファイルや隠しフォルダが、ホスト側の共有フォルダの中身で上書きされるため意図しない動作になることがあります。”/home/vagrant”の下にフォルダを設けて、そこを共有フォルダにするのが無難かと思います。

3-5. メモリとネットワークの調整

--memoryで仮想マシンに割り当てる最大メモリを指定します。あと、ネットワーク周りのレスポンス改善等の調整を入れています。

config.vm.provider "virtualbox" do |vb|
 # メモリ割り当て量を指定
 vb.customize ["modifyvm", :id, "--memory", 1024]

 # ネットワークレスポンス改善処理
 vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
 vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]

 # 仮想マシンへの接続エラー対応
 vb.customize ["modifyvm", :id, "--cableconnected1", "on"] 
end

すでに起動済みの仮想マシンを再起動するにはvagrant reloadを使います。

$ vagrant reload

以上。