読者です 読者をやめる 読者になる 読者になる

Programming log - Shindo200

イベント参加記録とプログラミング系の雑記

Vagrant のコマンドをメモしておく

【!注意!】
この記事は Vagrant の最新バージョンが 1.1.3 のときに書かれた記事なので、現在は内容が古くて、あまり参考になりません。公式サイトのドキュメントを参考にした方が良いです。



Vagrant は VirtualBoxVMware Fusion を使って仮想サーバーを作成し、コマンドラインから仮想サーバーを簡単に操作できるようにしたツールです。

Vagrant 
http://www.vagrantup.com/

最近は、サーバーの設定や更新を自動化するときに役立つ Chef というツールと組み合わせて、何度も壊しても問題がない開発環境を作るのに Vagrant を使うことが多いみたいです。本家のドキュメントがしっかりしているので、使い方について触れる必要がない気もするのですが、備忘録として書いておきます。

インストール

Vagrant は Ruby で作られており、Rubygems.org で公開されていますので、gemコマンドで簡単にインストールできます。Vagrant を使うには仮想化ソフトウェアが必要ですので、事前に VirtualBoxVMware Fusion をインストールしておいてください。(VMware Fusion は Vagrant 1.1以降で利用できます。2013年4月15日の時点で Rubygems.org に公開されているバージョンは 1.0.7 です。1.1以降を利用する場合は、公式サイトからインストーラーをダウンロードしてください。)

$ gem install vagrant

【2013年9月28日 追記】
現在、公式サイトからダウンロードできる最新バージョンは 1.3.4 です。しかし、Rubygems.org からダウンロードするとバージョン 1.0.7 が入ってきます。1.3.4 と 1.0.7 で設定ファイルの書き方が変わっており、設定ファイルを使い回すことができないので、Rubygems.org からダウンロードするのは止めた方が良いです。公式サイトから最新バージョンをダウンロードしましょう。

Vagrant Box の管理

Vagrant が起動する仮想サーバのOSイメージのことを "Vagrant Box" もしくは "Box" と呼びます。

Vagrant Box を追加する

$ vagrant box add [Box名] [Vagrant用OSイメージのURL] 

Vagrant用OSイメージは http://www.vagrantbox.es/ にあります。後述の package コマンドを使ってパッケージ化したOSイメージを持っていれば、そのパッケージを元に Box を追加することもできます。

Vagrant Box の一覧を表示する

$ vagrant box list

Vagrant Box を削除する

$ vagrant box remove [Box名] [プロバイダ名]

プロバイダ名は virtualboxvmware_fusion といった仮想化ソフト名を入力します。Vagrant Boxを追加するときに --provider オプションでプロバイダを指定した場合のみ使うので、普段は省略して大丈夫です。

Vagrant Box をパッケージ化する

$ vagrant box repackage [Box名] [プロバイダ名]

box remove コマンドと同じく、プロバイダ名は省略して大丈夫です。

設定ファイル

Vagrantfile というファイルに仮想サーバーの設定を書いておきます。この設定ファイルは仮想サーバを起動するときに読み込まれます。

設定ファイルを作成する

$ vagrant init [Box名] [Vagrant用OSイメージのURL]

カレントディレクトリに Vagrantfile という設定ファイルが出力されます。Box名やOSイメージのURLは省略して、あとで設定ファイルに直接書くこともできます。事前に box add コマンドで box を追加していれば、Box名だけ入力すれば良さそうです。

仮想サーバーの起動、停止

仮想サーバーを起動する

$ vagrant up

Vagrantfileが置いてあるディレクトリでコマンドを実行すると、サーバが起動します。

仮想サーバーを一時停止する

$ vagrant halt

仮想サーバを再起動する

$ vagrant reload

halt コマンドを入力した後に up コマンドを入力するのと同じ動きです。

仮想サーバーを破棄する

$ vagrant destroy

仮想サーバーに保存していたデータは消えてしまいます。

ログイン、SSH

仮想サーバに SSH でログインする

$ vagrant ssh

仮想サーバの SSH 接続用の設定情報を表示する

$ vagrant ssh-config

表示された情報を ~/.ssh/config に保存しておけば、ssh [ホスト名] でログインできるようになります。

# おすすめの使い方
$ vagrant ssh-config >> ~/.ssh/config
$ ssh [ホスト名]

パッケージ

仮想サーバーのイメージをパッケージという形式で保存しておくことができます。

仮想サーバーのイメージをパッケージ化する

$ vagrant package

仮想サーバーが起動しているか、一時停止している状態で実行すると、package.box というパッケージが作られます。(起動していた場合は、一時停止します。)

ステータス

仮想サーバーの状態を表示する

$ vagrant status

プラグイン

Vagrant はプラグインを入れることでコマンドを拡張することができます。プラグインはRubygems.org に gem として公開されています。

プラグインをインストールする

$ vagrant gem install [プラグイン名]
# Vagrant のバージョンが 1.1 以降は下記のコマンド
$ vagrant plugin install [プラグイン名]

インストール済みのプラグインの一覧を表示する

$ vagrant gem list
# Vagrant のバージョンが 1.1 以降は下記のコマンド
$ vagrant plugin list

プラグインをアンインストールする

$ vagrant gem uninstall [プラグイン名]
# Vagrant のバージョンが 1.1 以降は下記のコマンド
$ vagrant plugin uninstall [プラグイン名]


よく使うコマンドは以上でしょうか。もう少し Vagrant について便利な使い方が見えてきたら、またブログを書きます。