3
5

More than 5 years have passed since last update.

Vagrantで開発環境作成

Last updated at Posted at 2017-04-28

Vagrant

おうちから触れる CentOS 環境が欲しくなったので、
今更 Vagrant を Mac Air にいれてみる。

Vagrant: https://www.vagrantup.com/

Vagrant インストール

公式から Mac 用 dmg をダウンロードしてインストール
https://www.vagrantup.com/downloads.html

VirtualBox インストール

Vagrant は VirtualBox, Hyper-V, Docker をサポートしているらしい。
VirtualBox にしてみる。

公式から Mac 用 dmg をダウンロードしてインストール
https://www.virtualbox.org/wiki/Downloads

box の取得

起動イメージを box と呼ぶらしい。

https://atlas.hashicorp.com/boxes/search
から探してダウンロードする。

とりあえず bento/centos-6.8
https://atlas.hashicorp.com/bento/boxes/centos-6.8
にしてみる。

Vagrant 作成・実行

作業ディレクトリ作成

$ mkdir -p Vagrant/centos-6.8
$ cd !$

Vagrant 初期化

$ vagrant init bento/centos-6.8

VM は private network を使う

$ sed -i -e 's/# config.vm.network "private_network"/config.vm.network "private_network"/' Vagrantfile

(ネットワークの種類は割愛。検証用なら private_network が良いのでは)

VM 起動

$ vagrant up

VM 起動確認

$ vagrant status
Current machine states:

default                   running (virtualbox)

VM 接続

$ vagrant ssh
[vagrant@localhost ~]$ cat /etc/redhat-release
CentOS release 6.8 (Final)

VM 削除

$ vagrant destroy

複数 Vagrant 作成・実行

複数 VM 起動する場合は Vagrantfile を

Vagrant.configure("2") do |config|
  config.vm.box = "bento/centos-6.8"

  config.vm.define "cent6.8-1" do |vm1|
    vm1.vm.network "private_network", ip: "192.168.33.21"
  end

  config.vm.define "cent6.8-2" do |vm2|
    vm2.vm.network "private_network", ip: "192.168.33.22"
  end
end

のように書く。

実行は

$ vagrant up

で両方起動する。
名前を指定すれば1台だけ起動もできる。

起動確認

$ vagrant status
Current machine states:

cent6.8-1                 running (virtualbox)
cent6.8-2                 running (virtualbox)

ディレクトリで閉じているので最初に作った default VM は表示されない。

vagrant で作成した VM を全て確認する

$ vagrant global-status
id       name      provider   state   directory
-----------------------------------------------------------------------------
86f4387  default   virtualbox running PATH_TO_VAGRANTFILE
04a9930  cent6.8-1 virtualbox running PATH_TO_VAGRANTFILE
0607349  cent6.8-2 virtualbox running PATH_TO_VAGRANTFILE

Vagrantfile を色々いじったりして global-status で出るけど消せない VM ができたら

$ vagrant global-status --prune

で伐採する。

参考

box ファイルサイズ

$ du -hs ~/.vagrant.d/boxes/bento-VAGRANTSLASH-centos-6.8/
280M    ~/.vagrant.d/boxes/bento-VAGRANTSLASH-centos-6.8/

VM disk ファイルサイズ

$ du -hs ~/VirtualBox\ VMs/cent68_cent68_1493411084611_79030/
860M    ~/VirtualBox VMs/cent68_cent68_1493411084611_79030/

VM イメージがやっぱりちょっと大きい・・・。

まとめ

VirtualBox をコマンド (vagrant) で管理できる。
大量に作成したり、IP 管理したり、起動後にコマンド実行したりが設定できて便利。
設定ファイルも Vagrantfile だけなので Git 管理できる。
検証含めてプロジェクト毎にディレクトリと Vagrantfile を分ける運用が良さそう。

何か困ったらまた追記

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5