MacでのVagrantの使い方とコマンドについて(VirtualBoxに仮想マシンを作成)

スポンサーリンク

前回  MacでVirtualBoxにCentOS7をインストールしてSSH接続をするまでの方法 という記事を書きました。VirtualBoxで仮想マシンを作成する基本的なやり方でしたが、Vagrantを使用するともっと簡単にCentOSやUbuntuなどをインストールして使うことが出来ます。

Vagrantとは

Vagrantとは仮想マシンの構築と共有を、コマンドや定義ファイルを使って簡単に行うためのツールです。VirtualBox、VMWare上に仮想マシンを起動し、LinuxやWindowsなどを動作させることができます。

Vagrantのインストール

 Download Vagrant - Vagrant からMac用のPackageをダウンロードしてインストールします。

f:id:tasukujp:20150524154608p:plain

または、 Homebrew-caskでMacのGUIアプリケーション管理 からもインストール可能です。

$ brew cask search vagrant
==> Exact match
vagrant

$ brew cask install vagrant

VirtualBoxがインストールされてない場合は一緒にインストールします。

$ brew cask install virtualbox

Vagrant-Boxについて

Boxとは、仮想マシンを作成する際に必要なOSのディスクイメージファイル等が入ったファイルの集まりで、仮想マシンのテンプレートになります。

Boxの追加

Boxは追加していなくても仮想マシン作成時に指定することは可能ですが、一度追加しておくと何度でも使用できます。コマンドはvagrant box add [box-name] [box-url]で、[box-name]はわかりやすい名前を付けておきましょう。[box-url]は以下のページで調べられます。

 A list of base boxes for Vagrant - Vagrantbox.es

$ vagrant box add ubuntu64 http://files.vagrantup.com/precise64.box

Boxの確認

Boxを追加したらvagrant box listで確認します。

$ vagrant box list
ubuntu64  (virtualbox, 0)

Boxの削除

Boxを削除するにはvagrant box remove [box-name]です。

Vagrantの初期設定

任意のディレクトリを作成して、vagrant init [box-name]を実行します。追加してないBoxを指定したい場合は後ろにURLを記述してください。

$ mkdir UbuntuVM && cd UbuntuVM
$ vagrant init ubuntu64
$ ls
Vagrantfile

vagrant initを行うと Vagrantfile という定義ファイルが生成されます。このファイルに仮想マシンのBOXやIPアドレス、メモリなどの情報を記載していくことになります。

最近のBoxについて

ここまで基本的な流れで書きましたが、最近は Vagrantbox.es ではなく  Discover Vagrant Boxes | Atlas by HashiCorp を使用するのが主流だそうです。Box を追加することを意識する必要はありません。

$ vagrant init chef/centos-6.5
$ vagrant up
...
$ vagrant box list
chef/centos-6.5       (virtualbox, 1.0.0)

仮想マシンを起動する

起動するにはVagrantfileのあるディレクトリでvagrant upを実行します。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu64'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: UbuntuVM_default_1432456904216_54
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
...

終了するとここまで出番のなかった VirtualBox に仮想マシンが作成されます。作成したディレクトリの名前が付いてますね。

f:id:tasukujp:20150524174907p:plain

仮想マシンにSSH接続する

vagrant sshコマンドで仮想マシンに接続できます。

$ vagrant ssh
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)
...
vagrant@precise64:~$

vagrantコマンドではなくsshコマンドで接続するには次のように設定をコピーします。

$ vagrant ssh-config >> ~/.ssh/config

これでログインできます。defaultは~/.ssh/configのHost名に書かれてる名前です。

$ ssh default

Vagrantのコマンド

コマンドはvagrant -hで確認することができます。vagrant [command] -hで各コマンドのヘルプも見れます。

コマンド 機能
vagrant up 仮想マシンを起動
vagrant reload 仮想マシンを再起動
vagrant status 仮想マシンの状態を確認
vagrant halt 仮想マシンをシャットダウン
vagrant destroy 仮想マシンを除去
vagrant suspend 起動状態を保存して一時停止
vagrant resume 一時停止の仮想マシンを再開
vagrant global-status 全ての仮想マシンの状態を確認

関連記事

 Vagrantプラグインの使い方(vbguest, hostmanager, sahara, snapshot) - TASK NOTES

 Packerを使用してVirtualBoxの仮想マシンからVagrantのBoxを作成する - TASK NOTES

 VagrantのプロビジョニングをChef-Soloで実行する方法(Berkshelf + knife-solo使用) - TASK NOTES