Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@allocat

Vagrantで開発環境作成

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 を分ける運用が良さそう。

何か困ったらまた追記

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
6
Help us understand the problem. What are the problem?