Vagrant基本まとめたので書いておく

Vagrantとは

  • 仮想環境のフロントエンド
  • 仮想マシンの自動作成・管理ツール
  • 環境構築を自動化する
  • 開発者のローカル環境に依存しないように環境を統一化する
  • すぐ使える環境を用意する

1度Vagrantをインストールして、同じコマンドを入力してしまえばOSにとらわれずに同じ仮想環境を構築してしまえるソフトウェア。

Vagrant install

MacなのでPKG利用してインストール

Download https://www.vagrantup.com/downloads.html

HowTo Vagrant

起動から終了まで

  1. Boxファイル(ISOイメージ)のインストール
  2. Vagrant初期化
  3. Vagrant実行
    1. Boxイメージの起動
  4. Vagrant終了

Vagrant Init

vagrantのイメージを作成

vagrant cloud からubuntu64bit版のboxファイルをダウンロード


$ vagrant init --minimal ubuntu/trusty64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
$ ls
Vagrantfile

終わるとVagrantfileが作成されている。

Vagrant file Edit

Vagrantで仮想環境を立ち上げる前に、VirtualBoxで設定される環境(cpu, メモリ、ネットワーク等)をVagrantfileへ記述する。


$ cat Vagrantfile
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--ostype", "Ubuntu_64"]
v.name = "Vagrant Ubuntu14.04"
v.cpus = 1
v.memory = 1024
end
config.vm.network "private_network", ip: "192.168.33.11"
end
  • v.name = "VM名" VMの名前
  • v.cpus = 2 VMのCPU数
  • v.memory = 1024 VMのメモリサイズ
  • modifyvm –ostype <ostype ID>
ゲストOSの種類 ostype ID
Ubuntu 32bit Ubuntu
Ubuntu 64bit Ubuntu_64
CentOS 32bit RedHat
CentOS 64bit RedHat_64

Vagrant 起動と終了


$ vagrant up

VirtualBox立ち上げるとなにやら先ほど名前を設定した仮想環境が立ち上がっていることが確認できる。

途中でパスワードを求められるかも、その場合は管理アカウントのパスワードを入力。

立ち上げたBoxへSSH


$ vagrant ssh
or
$ ssh vagrant@192.168.33.11

終了


$ vagrant halt

vagrant 破棄(init された仮想環境のみ破棄される)


$ vagrant destroy

共有ディレクトリ

特に指定しないと vagrant側の/vagrantにVagrantfileがあるディレクトリがマウントされる。マウントされたファイルをゴニョゴニョすると、ローカル環境で編集→vagrant上で確認するみたいなことができる。


$ vagrant ssh
$ cd /vagrant
$ ls
Vagrantfile

nginxを仮想上へインストール

仮想環境上にnginxを入れてローカルから仮想上のwebサーバへアクセスする。


$ vagrant ssh
$ sudo apt-get update
$ sudo apt-get install nginx

ローカルのブラウザから http://192.168.33.11/ にアクセスしてみると多分nginxが起動している表示が見えるはず。

vagrant 管理

Boxリスト表示


$ vagrant box list {title}

Vagrant 設定系

Boxの保存場所、Diskが圧迫されてしまったらここのファイルを消すと良い。


/Users/username/.vagrant.d/boxes

vagrant snapshot

vagrant にsnapshotの機能を追加するプラグイン
https://github.com/dergachev/vagrant-vbox-snapshot


$ vagrant plugin install vagrant-vbox-snapshot

vagrant SnapShotをとる


$ vagrant snapshot take hoge
Taking snapshot hoge
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

SnapShotを確認する


$ vagrant snapshot list
Listing snapshots for 'default':
Name: hoge (UUID: 0f2b7e9c-af90-49a8-bd98-7c50cf7ec073) *

SnapShotをとった場所に戻す


$ vagrant snapshot go hoge
Powering off machine f8722ed8-f0d7-4b79-8ed5-5172341c5631
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Restoring snapshot 0f2b7e9c-af90-49a8-bd98-7c50cf7ec073
Starting restored VM
default: Checking if box 'ubuntu/trusty64' is up to date...
default: Resuming suspended VM...
default: Booting VM...
default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection refused. Retrying...
default: Machine booted and ready!

SnapShotを消す


$ vagrant snapshot delete hoge
0%...
10%...
20%...
30%...
40%...
50%...
60%...
70%...
80%...
90%...
100%

$ vagrant snapshot list
Listing snapshots for 'default':
This machine does not have any snapshots