Just do IT

思うは招く

MacOS + VirtualBox + Vagrant + Ubuntuの仮想環境を構築する

やりたいこと

  • Macに仮想環境を作りたい

使用するもの

これでLinuxUbuntu)をインストールする。 ※GUI環境のUbuntuを入れる

流れ

VirtualBoxをダウンロード

www.virtualbox.org

f:id:K_Koh:20191117172209p:plain

記事執筆時点(2019年11月17日)ではVirtualBox 6.0.14が最新。ただVagrantとの相性があり、新しければよいというわけではない。5.2系は安定しているが、サポートが2020年7月までとなっている。Macの場合はOS X hostsと呼ばれるやつを選ぶ。

ダウンロードが終わったら、Macインストーラーに言われるがままにセットアップ。

System Extension Blockedというダイアログが出たら、「セキュリティ環境設定を開く > 許可」をする。このダイアログすらも出ない、インストールできない場合は「環境設定 > セキュリティとプライバシー > 許可」をする。

Vagrantをインストール

www.vagrantup.com

f:id:K_Koh:20191117172335p:plain

Vagrant2.2.6が最新となっている(2019年11月17日)。MacOS用をダウンロードする。

f:id:K_Koh:20191117172423p:plain

Ubuntuをインストールする

まずはディレクトリを作成し、そこへ移動。

mkdir -p ~/vagrant/ubuntu
cd ~/vagrant/ubuntu

次にUbuntuのバージョン指定をしてインストール。

vagrant box add <Ubuntu名前> --box-version <バージョン>

vagrant box add ubuntu/bionic64 --box-version 20181129.0.0

次のコマンドを入れる。

vagrant init <Ubuntu名前>

vagrant init ubuntu/bionic64

これでVagrantが実行され、仮想マシンの設定ファイル(Vagrantファイル)が作成される。vagrant initだけでは適切なファイルが作成されないので注意。

ハイ次。

vagrant up

これでOK。

vagrant ssh

上記コマンドでssh接続をしてUbuntuに入れるか確認。 OKならssh接続を一旦抜けて次へ。

ディレクトリ共有設定

Ubuntuを管理しているディレクトリへ移動

cd ~/vagrant/<ubuntu名前>

作業ディレクトリを作成する

mkdir workspace

vagrantディレクトリにVagrantfileという設定ファイルがあるので開き、以下を設定。

・47行目あたりにあるコメントがない行に以下を入れる

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

これで仮想環境でのworkspaceディレクトリとMacのローカルにあるworkspaceディレクトリが共有される。

・55〜61行あたりにある

  # config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
  #   vb.memory = "1024"
  # end

これを

   config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
     vb.memory = "1024"
   end

コメントアウトを消して許可する。

設定を反映させるため、vagrantを再起動する。

vagrant reload

これでできたはず。 再びssh接続できるか確認。

vagrant ssh

workspaceディレクトリやファイルなどを作ってみて、共有できてたらOK。

日本語化など

日本のタイムゾーンに設定。

sudo timedatectl set-timezone Asia/Tokyo

dateコマンドで時間確認。

date

日本語化する。

sudo locale-gen ja_JP.UTF-8
echo export LANG=ja_JP.UTF-8 >> ~/.profile

反映させる。

source ~/.profile

その他参考になる記事

qiita.com