気になるLinuxを試しに使ってみたい時はVirtualBoxなどの仮想マシンを使うと思います。実験とか一時的な環境であればそれで十分ですが、何かソフトウェアの実行環境、または開発環境として仮想マシンを使う場合は環境構築にかかる作業が手間に感じる時があります
ある程度手を付けて環境が汚れてきて初期状態に戻したい時や、別の環境を用意したくなった時にVagrantを使えば環境構築の手順を自動的に進めることができるので、手間を省くことができます
install
以下のURLからVagrantとVirtual Boxのそれぞれのパッケージをダウンロードしてインストールします
- Vagrant
- VirtualBox
Boxを選ぶ
Vagrant Cloudのサイトから欲しいOSのイメージ(BOX)を探します
色々な人が作っているBoxがあって良し悪しがありますが、以下の物を選ぶと安心でしょう
- hashicorp (Vagrantの公開元)
- bento(Chef社)
init
公開されているイメージを自分のPCにダウンロードして、仮想マシンの初期化をします。Vatrant Cloudで見つけたBoxの名前を vagrant init
コマンドに指定して実行します
ターミナル(Windowsの場合はPowerShell)を開いてコマンドを実行します
# 実行前に作業ディレクトリを作り、その中で作業します
> mkdir vagrant
> cd vagrant
# 例として Ubuntu/xenial をダウンロードします
> vagrant init ubuntu/xenial64
実行した場所にVagrantfileが作られます
> vagrant init ubuntu/xenial64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
Vagrantfileの編集
必要に応じて用意したい仮想マシンの設定したい時は、生成されたVagrantfileを編集します。変更を間違えて初期状態に戻したい時はVagrantfileを削除して、再度 vagrant init <Box名>
を実行すればやり直せます
Vagrantfileの詳しい説明については https://www.vagrantup.com/docs/vagrantfile をご参照ください。大体の項目はVirtualBoxの設定操作に紐づいていますので、必要な所は感覚的に分かると思います
変更したVagrantfileを適用するには --provision
オプションを指定して実行します
# 仮想マシンが起動していない場合
> vagrant up --provision
# 起動中の仮想マシンを再起動させて適用する場合
> vagrant reload --provision
起動
Vagrantfileのあるディレクトリ内で vagrant up
を実行します
> vagrant up
# 複数の仮想マシンがインストールされている場合は `--provider` オプションで明示して実行します
> vagrant up --provider virtualbox
ssh
起動した仮想マシンのシェルを操作するには vagrant ssh
を実行します
> vagrant ssh
ポートフォワーディングの設定をした場合は2222番ポート(デフォルト状態)に接続すればssh接続で操作することもできます。以下でログインできます
- ユーザー名: vagrant
- パスワード: vagrant
停止
起動した仮想マシンを停止するには、Vagrantfileのあるディレクトリ内で vagrant halt
を実行します
> vagrant halt
その他のコマンド
よく使用するコマンドをまとめました
コマンド | 動作 | メモ |
---|---|---|
vagrant box add | Boxをダウンロードします | |
vagrant box remove | ダウンロードしたBoxを削除します | |
vagrant box list | ダウンロードしたBoxの一覧を表示します | |
vagrant init | 仮想マシンの初期化 | 実行したディレクトリにVagrantfileが作成されます |
vagrant ssh | 起動した仮想マシンのsshシェルを開きます | Vagrantfileのあるディレクトリで実行します |
vagrant up | 仮想マシンを起動します | Vagrantfileのあるディレクトリで実行します |
vagrant halt | 仮想マシンを停止します | Vagrantfileのあるディレクトリで実行します |
vagrant reload | 仮想マシンを再起動します | Vagrantfileのあるディレクトリで実行します |
vagrant destroy | 仮想マシン削除 | Vagrantfileのあるディレクトリで実行します |
vagrant package | 仮想マシンをパッケージング(Box形式で出力)します |
tips
ファイルの保存先
通常は上記の vagrant
コマンドで削除すればいいですが、Vagrantをアンインストールしてしまった時は以下の場所を開いて、ファイルを削除すればいいです
ダウンロードしたBox
~/.vagrant.d/boxes
~
はユーザーのホームディレクトリ(Windowsならば C:\users\ユーザー名
)です
仮想マシンの関連ファイル
~/VirtualBox VMs
Guest Additionsのバージョンを上げる
仮想マシンにインストールされているAdditionsのバージョンが古いなどで上手く動かない場合は以下のコマンドでバージョンを上げることができます
> vagrant plugin install vagrant-vbguest
双方向に読み書きできる共有フォルダーを作る
Vagrantfile に以下の記述を追加します。上記の手順でGuest Additionsを最新にするとトラブルは少ないと思います
config.vm.synced_folder "./output", "/vagrant/output", type:"virtualbox"