Vagrant基本まとめたので書いておく
- 2015.04.27
- Tech Web構築
- vagrant, VirtualBox
Vagrantとは
- 仮想環境のフロントエンド
- 仮想マシンの自動作成・管理ツール
- 環境構築を自動化する
- 開発者のローカル環境に依存しないように環境を統一化する
- すぐ使える環境を用意する
1度Vagrantをインストールして、同じコマンドを入力してしまえばOSにとらわれずに同じ仮想環境を構築してしまえるソフトウェア。
Vagrant install
MacなのでPKG利用してインストール
Download https://www.vagrantup.com/downloads.html
HowTo Vagrant
起動から終了まで
- Boxファイル(ISOイメージ)のインストール
- Vagrant初期化
- Vagrant実行
- Boxイメージの起動
- 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
-
前の記事
今更coffeescriptに手を出した 2015.04.13
-
次の記事
Ansibleの基本的な使い方 2015.05.09