Vagrant

コマンド一覧

基本 vagrant init {box名} {boxファイルURL} Vagrantfile作成
vagrant up 仮想サーバーを起動
vagrant halt 仮想サーバーを停止
vagrant reload 仮想サーバーを再起動
vagrant suspend 仮想サーバーを一時停止
vagrant destroy 仮想サーバーを破棄
vagrant ssh 仮想サーバーへSSHログイン
box vagrant box add {box名} {boxファイルURL} boxの追加
vagrant box list boxの一覧表示
vagrant box remove {box名} boxの削除
vagrant box repackage boxの再パッケージ
vagrant box outdated boxの更新確認
vagrant box update boxの更新
plugin vagrant plugin install {プラグイン名} プラグインをインストール
vagrant plugin uninstall {プラグイン名} プラグインをアンインストール
vagrant plugin update {プラグイン名} プラグインを更新
vagrant plugin list インストール済のプラグインを一覧表示
sahara vagrant sandbox on sandboxモード開始
vagrant sandbox off sandboxモード終了(commitしていない変更が破棄される)
vagrant sandbox commit 変更を保存
vagrant sandbox rollback 変更を破棄し、ロールバック
vagrant sandbox status sandboxモードの確認
vagrant-global-status vagrant global-status --all ホスト内の全仮想サーバーを一覧表示
vagrant-vbguest vagrant vbguest --status インストールされたバージョンを確認

Box

プラグイン

  • sahara
    仮想サーバーのスナップショットを取得しておいて、その時点まで戻すことができるプラグイン。
    • インストール
      vagrant plugin install sahara
      
  • vagrant-cachier
    yumやapt-getなどのパッケージをローカルにキャッシュし、プロヴィジョニングの実行を高速化するプラグイン。
    • インストール
      vagrant plugin install vagrant-cachier
      
    • Vagrantfileの設定
      Vagrant.configure("2") do |config|
        config.vm.box = "app" 
        if Vagrant.has_plugin?("vagrant-cachier")
          config.cache.scope = :box
        end
      end
      
  • vagrant-global-status
    ホストにあるすべての仮想サーバーを一覧表示できるプラグイン。
    • インストール
      vagrant plugin install vagrant-global-status
      
  • vagrant-omnibus
    仮想サーバーにChefがインストール済かを確認してなければ自動的にインストールしてくれるプラグイン。
    • インストール
      vagrant plugin install vagrant-omnibus
      
  • vagrant-vbguest
    仮想サーバーにVirtualboxのGuest Additionsがインストール済かを確認してなければ自動的にインストールしてくれるプラグイン。
    • インストール
      vagrant plugin install vagrant-vbguest
      
  • Vagrant::Hostsupdater
    仮想サーバー起動時にホストOSのhostsファイルを書き換えできるプラグイン。
    • インストール
      vagrant plugin install vagrant-hostsupdater
      

Vagrantfile

  • 共有フォルダの指定
    共有フォルダのBoxを指定するときは「file」スキームを付けて、\(円マーク)は1つにつき2つ記述する。
    config.vm.box_url = "file://\\\\fileserver\\\\box\\centos.box"

.vagrantファイル

.vagrantファイルは仮想サーバー固有のidが保存されているので他の環境と共有しない。
Gitでバージョン管理対象外にするには「.gitignore」を設定する。

.vagrant