Help us understand the problem. What is going on with this article?

Vagrantで開発環境作成

More than 3 years have passed since last update.

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした