LoginSignup
9
10

More than 5 years have passed since last update.

Vagrantを、恐る恐る動かしながらくどくどと説明してみた(まずはVirtualBoxを使って設置)

Last updated at Posted at 2015-12-30

はじめに

動機を3行で記述すると

  • 開発、検証作業などでいろいろやりたいお。
  • でも仮装の構築、変更は骨が折れるお。
  • だからVagrantでやるお!

Vagrant 自体は知っていた

昨年(2015年)に参加した勉強会で「VagrantとDockerがどうこう」という話を聞きましたが、その時は「VagrantのBoxが、誰が作ったかわからないので怖い」という印象を持っていました。

環境構築には時間が掛かる。

この前受講したブートキャンプでも「環境構築」でつまずきました(本題とはあまり関係ないところで)
railsのgemの不一致などが原因でしたが、特定に時間が掛かりました。

※講師曰く、「ベイグラントに環境を用意して〜」 やっぱり必要だ。

私の環境

  • ホストOSは Mac OS 10 (El Capitan)  
  • MacBook Pro (Late 2013) Core i5 メモリは8GB
  • Virtualbox5.0 インストール済み

ホストOSはMacOS Xです(ありがち。Linux系OSでも、それほど違わないとは思いますが・・・)

重要なのは、ゲストOSを構築、起動させるためのアプリがVirtualBoxだってこと。
バージョンまではそこまで厳密には問われない・・・と思う。

Vagrantをインストール

Vagrantの公式ダウンロードページによると
https://www.vagrantup.com/downloads.html

  • MacOSX
  • WINDOWS
  • DEBIAN
  • CentOS

などが存在しますが、ここはMacOS X を選択してダウンロード
(各自環境に合わせて使ってください)

VMを設置する

Vagrantの場合、VirtualBoxとインストール方法が大きく異なります。

  • VirtualBox単品:VirtualBox側で新規仮想マシンを作成、設定してISOイメージをマウントしたりしてインストール
  • Vagrantを使う:Box(仮想OSや設定が入ったもの)を元に仮想サーバファイルを作成する。

作業用のディレクトリを作成する。

Vagrantの設定ファイルなどを置く場所を作ります(仮想マシンのデータが入ったファイルとは別物です)
仮にユーザディレクトリの myvm/test_vm に設置する場合

terminal
$ cd /Users/rojiuratech/
$ mkdir myvm/test_vm/

とでもして用意してください

box(仮想イメージのようなもの)を選択し、Vagrantfileを生成する

参考元によると、公式(hashicorp)が運営しているVagant Cloud を使う方が良いみたい。(こっちの方が安全そう)

centos6.x系を使いたかったので(2015年末時点で、Webサーバの環境に多い)
絞り込みを実施

bento/centos6.7 を選ぶことに

vmware、parallels、virtualbox向けのboxがそれぞれ用意されていているので、
virtualbox向けの設定コマンドをターミナルで入力し実行。

terminal
$ vagrant init --minimal bento/centos-6.7; vagrant up --provider virtual box
  • 仮想環境が見つからなかったのでatlasにダウンロードしに行きました
  • SSHを設定しました
  • マウントします

みたいなメッセージが流れます。

Vagrantfile を確認する

作業ディレクトリに、Vagrantfile が生成されます。
インストール時に minimal と指定したので、本当に最小限の記述しかありません

terminal
$ cat Vagrantfile 
Vagrant.configure(2) do |config|
  config.vm.box = "bento/centos-6.7"
end

記述形式がRubyなのはVagrantの仕様です。
boxは bento/centos-6.7 を使います。 的な記述があるだけです。

なお、インストールされている vagrant box の一覧は

terminal
$ vagrant box list
bento/centos-6.7 (virtualbox, 2.2.2)

と言った感じで、確認可能です。

とりあえず、動かしてみる

2016年1月に加筆修正
VirtualBox マネージャーを表示してみてください
va_hallo_default_(以下略)と言った感じの作成したディレクトリ名を含む、新しい仮装マシーンが生成されているはずです。

Vagrantで起動する

Vagrantfileが存在するディレクトリで

terminal
$ vagrant up

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'bento/centos-6.7' is up to date...
==> default: VirtualBox VM is already running.

※最初にVagrantfileを生成した時には、もう動いていた(私の環境固有だったのかもしれませんが・・・)

vagrantで終了する

terminal
$ vagrant halt

==> default: Attempting graceful shutdown of VM...

シャットダウン成功

仮装マシーンの設定、状況に関して

このケースでは特に設定をしていないので、マシンスペックなどは適当ですが・・・動作自体はvirtualBox単品で仮装マシーンを作った時と同じような感じです。

カスタマイズしてみる

Vagrantの醍醐味?の環境カスタマイズを試してみることにしました。

Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.box = "bento/centos-6.7"
  config.vm.provider "virtualbox" do |v|
    v.name = "Hello Vagrant"
    v.cpus = 2
    v.memory = 1024
    v.customize ["modifyvm", :id, "--vram","16"]
  end
end

注目
v.customize ["modifyvm", :id, "--vram","16"]

modifyvm で 設定 id 設定するもの 値
というのが基本みたい。

参考

VagrantとDockerについて名前しか知らなかったので試した

まさに上記リンク先の想定読者で、こうなるとカッコいいなぁ像になりたい。
メリットも、上記リンク先の各種ソフトウェアの概要がしっくりするような。

仮想OSをカスタマイズする
http://qiita.com/darwin/items/8d6b34945407fa5dd26f

自前で生成したboxに設定を記述する・・・と言った趣旨ですが、virtualbox上でVagrantの設定をカスタマイズする方法が簡潔に記載されています。

vagrantのネットワークについて
http://labs.septeni.co.jp/entry/20140707/1404670069

VirtualBox でも、設定がわかりにくい・・・のがこのネットワークですが

[Vagrant & VirtualBox] Vagrant: 同じLAN内の端末から仮想マシンにアクセスする

社内LANの他のマシンから接続させたい

9
10
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
9
10