2014年05月13日

仮想環境構築ツール

特徴

  • 簡単にVM環境の構築、破棄を簡単なコマンドで実行できる。
    • Vatualbox等のフロントエンドコマンドラインツール
      • 他にもAWSのEC2等も操作することが出来るらしい
  • 配布されているBox(VMイメージのテンプレート)からゲストOSを作成
    • 構築した環境をBoxにして簡単に配布できる。
  • rubyで実装されており、設定ファイルはrubyで記述できる
  • VMの環境設定の自動化はchefが便利

必要なもの

使い方

1. Boxを取得

$ vagrant box add <name> <url>

公式よりubuntuのインストール

$ vagrant box add hashicorp/precise32
$ vagrant box add centos6 http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box

自分で作る

2. インストールされたBoxの確認

$ vagrant box list
centos6             (virtualbox, 0)
hashicorp/precise32 (virtualbox, 1.0.0)

box操作のhelp

$ vagrant box -h

3. 仮想マシンを初期化して起動

$ mkdir centos6
$ cd centos6
$ vagrant init centos6

Vagrantfileが作成される。

CentOsの起動

$ vagrant up

主な他操作コマンド

コマンド 説明
vagrant up 起動
vagrant status 状態確認
vagrant reload 再起動
vagrant halt 終了
vagrant suspend サスペンド
vagrant resume 再開
vagrant destroy 削除

4. 仮想マシンへ接続

$ vagrant ssh
Last login: Fri Mar  7 16:57:20 2014 from 10.0.2.2
[vagrant@localhost ~]$

切断はexit

windowsだとvagrant sshは使えない。
sshクライアントから接続する。

接続情報はvagrant ssh-configで確認。
パスワードはUserと同じ。

Vagrantfileの変更

1. ネットワーク設定を変更

Vagrantfileの以下のコメントを外す

#config.vm.network "private_network", ip: "192.168.33.10"
↓
config.vm.network "private_network", ip: "192.168.33.10"

2. プロビジョニング

起動時にshellを実行してみる

Vagrantfileへ追加

config.vm.provision :shell, :path => "provision.sh"

起動時にhttpdの設定を行うshell

provision.sh

sudo yum -y install httpd
sudo service httpd start
sudo chkconfig httpd on
$ vagrant provision

環境設定周りはChefを使うと便利。

Vagrantfileを変更したらVMの再起動

$ vagrant reload

共有フォルダ

ホストOSのvargent initしたフォルダとゲストOSの共有フォルダ

$ ls
Vagrantfile
$ vagrant ssh
[vagrant@localhost ~]$ ls /vagrant
Vagrantfile

現在の仮想マシンの状態からboxを作成する。

$ vagrant package

package.boxが作成される

プラグイン

help

$ vagrant plugin -h

sahara

Guiで起動する

Vagrantfileの以下の部分のコメントを外す

config.vm.provider "virtualbox" do |vb|
  # Don't boot with headless mode
  vb.gui = true

  # Use VBoxManage to customize the VM. For example to change memory:
  vb.customize ["modifyvm", :id, "--memory", "1024"]
end

vagrant upするとGuiで起動する

参考



blog comments powered by Disqus