ぺんぎんノート

momoiro_tjのノート (旧:システムオペレータの週末)

Vagrant始めました。

Vagrant使ってますか?←一回使ってみたかった。

私は今まで手動で仮想マシンの設定するのが楽しかったので、Vagrantなんて邪道!なんて考えている節もありました。 しかし、最近ちょっとめんどくさくなってきたので、重い腰を上げてVagrantをインストールして使い始めてみました。

使ってみて「仮想マシンってこんな使い方あるのか!」と感じました!

今回は公式のVagrant by HashiCorpのドキュメント、Installing Vagrantと、Getting Startedを参考にしてVagrantを試してみたのでその記録になります。

準備と環境

Vagrantとはざっくり言うと、開発環境(仮想マシン)を簡単に構築するためのツールとなります。あくまで開発環境のためのツールなので、本番環境では使用する目的では使用しないほうがいいでしょう。本番環境にはChefやAnsibleのような構成管理ツールを使用するのがいいみたいです。

仮想マシンを使用するので、VMWareVirtualboxのような仮想マシンソフトウェアが必要となります。事前にインストールしておきましょう。 仮想マシンがどんなものかわからない方はそちらから仮想マシンの学習から始めることをお勧めします。

今回使用した環境は次の通りです。

環境 名称
ホストOS Windows7 Professional SP1 64bit
仮想マシン Virtual Box 5.0.16

Getting StartedドキュメントはVirtualBoxで話が進むので、同じ環境が分かりやすいかと思います。 もちろんVMWareのような他の仮想環境でも使用できます。

Vagrantのインストール

まずはホストへVagrantをインストールします。 Windowsでのインストールは簡単です。

  1. Vagrant by HashiCorpDOWNLOADをクリックし、実行ファイル(*.exe)をダウンロードします。

  2. 実行ファイルを実行し、指示に従いインストール作業を進めます。

    補足 途中、インストール先のディレクトリを選択します。私の場合、規定値ではCドライブの直下になっていました。 他のディレクトリへインストールしたい場合は注意して下さい。(私はC:\Program Files (x86)にしました。)

  3. インストール後は、PCを一度再起動させてください。

以上の3ステップです。Windowsでの普通のソフトのインストールと変わらないと思います。

MacOSWindowsと同じような感じでパッケージファイル(*.pkg)ファイルを実行してインストールするようです。 linuxではrpmdebパッケージからインストールするか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/precise64Ubuntu仮想マシンイメージです。

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。一度試してみてはいかがでしょうか?