インフラSE日記

OSS、仮想化、金融工学、ゲーム、ときどきラーメン

Vagrantを使ってみた感想

Vagrant

Vagrantは仮想環境構築ソフトウェア。

Rubyで書かれています。

 

Vagrantで実現したいこと

 個人的にVagrantでやりたいことは以下の3点だと思ってます。

  1. 仮想の開発環境・検証環境をすぐに構築・破棄したい
  2. Virtual Box、VMware Workstation、Amazon EC2などの様々な
    仮想化ソフトウェアを統一したコマンドで管理したい
  3. 環境構築を自動化したい

 

 順番に見ていきましょう。

1はVagrantに限らず他のツールでも同じだと思います。

必要になったときにパッと仮想マシンを作成し、起動できる。

不要になったときに破棄できる。

僕は主にホストのUbuntu仮想マシンを汚したくないけどテストしたいというときに

使っています。

 

2についてですが、僕はVagrantのバックエンドの仮想化ソフトウェア(Vagrantではプロバイダーと呼ばれます)はVirtual Box以外使ったことがないため、他の仮想化ソフトウェアについてはわかりません。それぞれの仮想化ソフトウェアは仮想マシンの作成・破棄の手順、設定方法などが異なるので、他の仮想化ソフトウェアを使うとなったらいちいち覚え直さないといけません。VagrantならVagrantのコマンドを覚えるだけで統一したコマンドで仮想マシンが管理できます。

 

最後の3は自動構成ツール、いわゆるプロビジョニングツールと組み合わせて使うことです。昔はChefが流行ってたイメージでしたが、今はAnsibleの方が流行っているような気がします。

 

Vagrantを使った仮想マシンの作成手順

自分が忘れそうなので書いてみます。

Vagrant仮想マシンを作成するときの手順は大雑把に次の通り。

  1. Boxの入手

    BoxとはAWSでいうところのAMIに相当します。
    Vagrantbox.esVagrant Cloudで入手します。昔はvagrantbox.esからダウンロードすることが多かったのですが、今はvagrant cloudからダウンロードするのが流行りみたいですね。結構ダウンロードするのに時間がかかります。

    コマンドは以下の通り。
    vagrant box add <BoxのURL> -name <Box名>
  2. ディレクトリの作成
    1で指定したBox名と同じディレクトリ名のディレクトリを作成します。
  3. Vagrantの初期化
    2で作成したディレクトリにて以下のコマンドでVagrantを初期化します。
    vagrant init

    そのディレクトリにVagrantfileと呼ばれるVagrantの設定ファイルが作成されます。Vagrantのバージョンによって若干差異があったりします。
  4. 仮想マシンの起動
    以下のコマンドで仮想マシンを起動します。
    vagrant up

    ちなみに、vagrant statusでその仮想マシンが起動しているか、サスペンドしているか、停止しているかなどがわかります。
  5. 仮想マシンにログイン
    以下のコマンドで仮想マシンにログインします。
    vagrant ssh

    もちろん、TeraTermなどを使ってsshログインしてもいいと思いますが、
    sshの設定が少しめんどうなのでこのコマンドでいいと思います。

 

Vagrantを使ってみた感想

やはり、開発・検証環境をすぐに構築したい!という人向けだと思います。

本番環境を構築するときにわざわざvagrantを使うメリットが見いだせませんでした。

仮想マシンの構築は本当にすぐなので、ちょっと試してみたいという分には便利かもしれません。

 

今後について

まだまだ使い込みが甘いので、Vagrantをどんどん使って行って様々な機能を使ってみたいです。その過程で新しいVagrantのメリットや面白さがわかってくるのかもしれません。

恥ずかしながらAnsibleもChefも使ったことがないのでvagrantと組み合わせて自動的に構築してみたいです。

 

 

 

そんな感じです。