目的
Windows 環境で Vagrant を使用して Ubuntu の VM 環境を作成する。
検証環境
今回の検証環境は以下になります。
Vagrant と VirtualBox のバージョンの組み合わせによっては Vagrant の実行時にエラーが発生するため注意してください。
パッケージ名 | バージョン |
---|---|
Host OS | Windows 7 64bit |
Vagrant | 1.9.5 |
VirtualBox | 5.1.22 r115126 |
Vagrant のインストール
公式からインストーラーをダウンロードして、インストールします。
Download - Vagrant by HashiCorp
VirtualBox のインストール
Vagrantのプロバイダとして、今回はVirtualBoxを使用します。(VMwareも対応していますが、有料版になります)
公式からインストーラーをダウンロードして、インストールします。
Downloads – Oracle VM VirtualBox
VMイメージを作成
公式の配布ベースイメージの検索
HashiCorp が Vagrant Box のホスティングをしている Atlas から必要なパッケージを探します。
(以前は Vagrant Cloud という名前だったようです)
Discover Vagrant Boxes | Atlas by HashiCorp
今回はubuntuの公式boxを使用します。
※ちなみに「Vagrantbox.es」というbaseイメージを配布しているサイトもありますが、こちらのboxは出自も中身も不明なものが多いため基本的には使用しないほうが安全かとは思います。
Vagrantfileの作成
vagrant init
にて Vagrantfile
を作成します。
# Vagrantfileの作成
$ vagrant init ubuntu/xenial64
VMの初回起動
次に vagrant up
コマンドにて仮想マシン(VM)の起動を行います。
実行するVM が未作成の場合は作成を行います。
その際に、ベースボックスがローカルにない場合はダウンロードを行います。
# windows command promptの場合
$ set http_proxy="http://<proxy addr>:<port>/"
$ set https_proxy="http://<proxy addr>:<port>/"
## Git Bashの場合
$ export http_proxy="http://<proxy addr>:<port>/"
$ export https_proxy="http://<proxy addr>:<port>/"
$ vagrant up
or
$ vagrant up --provider virtualbox
virtualbox指定はデフォルト動作のため省略できます。
VMへの接続
作成が完了したらssh接続します。
# ssh接続
$ vagrant ssh
ubuntu@ubuntu-xenial:~$ uname -a
Linux ubuntu-xenial 4.4.0-75-generic #96-Ubuntu SMP Thu Apr 20 09:56:33 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@ubuntu-xenial:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
これで Vagrantを使用してUbuntuの環境が作成できました。
その後のUbuntuの初期設定に関しては以下の記事が詳しいです。Vagrantでのプロビジョニングも含みます。
Ubuntu14.04のVM作ったらとりあえずやること - Qiita
その他
VagrantBox, VirtualBoxの保存先を(Cドライブ以外などに)変更したい場合は環境変数 VAGRANT_HOME
を変更して下さい。こちらに関しては以下の記事が詳しいです。
Vagrant, VirtualBox 大きいファイルの保存先を変更する - Qiita
その他のVagrantの操作に関しては公式のドキュメントを参照して下さい。
Getting Started - Vagrant by HashiCorp
注意点
プロバイダをVirtualBoxで指定した場合、VirtualBoxのスタートページにもVMが追加されています。
ただし、スタートページから起動した場合 /vagrant
がマウントされないなど動作が異なるため、特に制約がない限りは初回起動時以降も vagrant up
コマンドにて起動することをおすすめします。
プラグイン
プロキシ設定の自動化
tmatilai/vagrant-proxyconf: Vagrant plugin that configures the virtual machine to use proxies
こちらのプラグインの利用は便利ですが2016年3月で更新がとまっているため、使用時には注意したほうが良いかもしれないです
少々面倒ですが最終的にはChef, Ansibleなどのプロビジョナー側でプロキシ設定の解決を行った方が良いかと思います。
関連
ネットワーク設定
ベースボックス関連
vagrant box updateでboxファイルをアップグレードする
その他
- [Vagrant][Windows][VirtualBox] Vagrantで作成したVMのディスクサイズを拡張する - Qiita
- [Vagrant] vagrant up 時に常に実行される provison を設定する - Qiita
- [Vagrant][Ubuntu] Atlasで提供されているUbuntu boxのパスワード設定を確認 - Qiita
- VirtualBoxとVagrantの紐付けをやり直す方法 - Qiita
不具合対処
rsync: change_dir "/path/to/dir" failed: No such file or directory (2)
1.8.0 ~ 少なくともVagrant 2.0.0まで発生
Windows + vagrant 1.8.5 + rsync 3.1.1 で発生する、config.vm.synced_folderの失敗の直し方 - Qiita
参考
VagrantとDockerについて名前しか知らなかったので試した - Qiita
Vagrant + VirtualBoxでWindows上に開発環境をサクッと構築する - Qiita
VagrantfileでVirtualBoxのVMパフォーマンス向上設定 - Qiita
Vagrant + VirtualBox で CPU コアを2つ以上割り当てると遅い - Qiita