Vagrant使ってますか?←一回使ってみたかった。
私は今まで手動で仮想マシンの設定するのが楽しかったので、Vagrantなんて邪道!なんて考えている節もありました。 しかし、最近ちょっとめんどくさくなってきたので、重い腰を上げてVagrantをインストールして使い始めてみました。
使ってみて「仮想マシンってこんな使い方あるのか!」と感じました!
今回は公式のVagrant by HashiCorpのドキュメント、Installing Vagrantと、Getting Startedを参考にしてVagrantを試してみたのでその記録になります。
準備と環境
Vagrantとはざっくり言うと、開発環境(仮想マシン)を簡単に構築するためのツールとなります。あくまで開発環境のためのツールなので、本番環境では使用する目的では使用しないほうがいいでしょう。本番環境にはChefやAnsibleのような構成管理ツールを使用するのがいいみたいです。
仮想マシンを使用するので、VMWareやVirtualboxのような仮想マシンソフトウェアが必要となります。事前にインストールしておきましょう。 仮想マシンがどんなものかわからない方はそちらから仮想マシンの学習から始めることをお勧めします。
今回使用した環境は次の通りです。
環境 | 名称 |
---|---|
ホストOS | Windows7 Professional SP1 64bit |
仮想マシン | Virtual Box 5.0.16 |
Getting StartedドキュメントはVirtualBoxで話が進むので、同じ環境が分かりやすいかと思います。 もちろんVMWareのような他の仮想環境でも使用できます。
Vagrantのインストール
まずはホストへVagrantをインストールします。 Windowsでのインストールは簡単です。
Vagrant by HashiCorpのDOWNLOADをクリックし、実行ファイル(*.exe)をダウンロードします。
実行ファイルを実行し、指示に従いインストール作業を進めます。
補足 途中、インストール先のディレクトリを選択します。私の場合、規定値ではCドライブの直下になっていました。 他のディレクトリへインストールしたい場合は注意して下さい。(私は
C:\Program Files (x86)
にしました。)インストール後は、PCを一度再起動させてください。
以上の3ステップです。Windowsでの普通のソフトのインストールと変わらないと思います。
MacOSもWindowsと同じような感じでパッケージファイル(*.pkg)ファイルを実行してインストールするようです。 linuxではrpmかdebパッケージからインストールするかyum(redhat系)やapt-getまたはaptitude(debian系)でインストールできるようです。
最後に、インストールできたか確認するため次のコマンドを実行します。vagrantのバージョンを確認します。
vagrant -v vagrant --version #こちらでもOK!
vagrantのバージョンが表示されたらインストールできています。 また、vagrantはコマンドラインベースのプログラムなので、GUI環境はありません。 なので、WindowsのスタートメニューにVagrantフォルダは追加されませんでした。
プロジェクトの作成
Vagrantを使うにはまずvagrant init
コマンドで、任意のディレクトリにVagrantfileという設定ファイルを作ります。
Vagrantfileがあるディレクトリがプロジェクトのルートディレクトリとなります。
今回はvagrant_getting_started
ディレクトリを作り、その中にVagrantfileを作成します。
$ mkdir vagrant_getting_started $ cd vagrant_getting_started $ vagrant init hashicorp/precise64
vagrant_getting_started
ディレクトリにVagrantfileというファイルができます。
中を見るとほとんどがコメント行で、次の3行のみ記述があることが分かります。
Vagrant.configure(2) do |config| config.vm.box = "hashicorp/precise64" end
最も簡単なVagrantfileになります。Vagrant init
の引数に指定したhashicorp/precise64
が反映されていることが分かります。
hashicorp/precise64
がベースとなる仮想マシンイメージとなります。Vagrantでは、ベースとなる仮想マシンイメージのことをボックス(box)と呼びます。
ボックスは公式のパブリックディレクトリであるHashiCorp's Atlas box catalogで配布されているものです。 ちなみに、
hashicorp/precise64
はUbuntuの仮想マシンイメージです。
Vagrantfileができたら、いよいよVagrantを起動します。
Vagrantの起動
起動はvagrant up
で行います。Vagrantfileのあるディレクトリで実行します。
$ vagrant up
boxがダウンロードされていないので、コマンドを実行後に自動でダウンロードが始まります。(少し時間がかかります)
事前にboxをダウンロードしておく場合は、vagrant box add [box名]
コマンドでboxをダウンロードできます。
boxはベースイメージなので、複数のVagrantプロジェクトで使いまわすことができます。 使いまわしても、box自体はベースイメージなので改変されません。
少しすると仮想マシンが起動し、自動でSSHの設定がなされます。
完了したら、vagrant ssh
コマンドで確認します。このコマンドは、ゲストマシンのSSHの情報を表示します。
SSHは秘密鍵を使用する形式になっています。
Host: 127.0.0.1 Port: 2222 Username: vagrant Private key: vagrant_getting_started/.vagrant/machines/default/virtualbox/private_key
任意のSSHソフト(teratermなど)で疎通すると、ログインが可能です。
なお、Vagrantfileがあるフォルダは、デフォルトでゲストマシンの/vagrant
ディレクトリと同期しています。
ファイルの交換なども簡単にできます。
Vagrant仮想マシンの破棄
最後は不要になった仮想マシンの終了方法になります。
Vagrantfileがあるディレクトリでvagrant destroy
コマンドを実行するだけです。
vagrant destroy
以上が、Getting Startedの内容になります。コマンドが短くてわかりやすのに、 やってることはえげつないですね。単純にすげえぇって思いましたよ。
ぜひ、簡単にできるvagrant。一度試してみてはいかがでしょうか?