前回 MacでVirtualBoxにCentOS7をインストールしてSSH接続をするまでの方法 という記事を書きました。VirtualBoxで仮想マシンを作成する基本的なやり方でしたが、Vagrantを使用するともっと簡単にCentOSやUbuntuなどをインストールして使うことが出来ます。
Vagrantとは
Vagrantとは仮想マシンの構築と共有を、コマンドや定義ファイルを使って簡単に行うためのツールです。VirtualBox、VMWare上に仮想マシンを起動し、LinuxやWindowsなどを動作させることができます。
Vagrantのインストール
Download Vagrant - Vagrant からMac用のPackageをダウンロードしてインストールします。
または、 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 に仮想マシンが作成されます。作成したディレクトリの名前が付いてますね。
仮想マシンに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