LoginSignup
795
801

More than 5 years have passed since last update.

Vagrant basics

Last updated at Posted at 2013-10-09

概要

仮想環境(VirtualBoxなど)上への仮想マシンの立ち上げ、操作が可能。

用語

プロバイダ

仮想環境
eg.VirtualBoxやVM Ware、EC2など

プロビジョニング

ミドルウェアの設定やインストールを行うツール
eg.シェルスクリプト、Chef(chef-solo, chef-client)、Puppetなど

Boxファイル

仮想マシン起動の際にベースとなるイメージファイルのこと。
仮想環境ごとに必要。
通常はOSイメージから作成する。
Vagrant利用の上で最低限必要な設定(Vagrantユーザの作成、sshdの起動、プロビジョニングツールのインストール)のみを行っておくのが普通。

Vagrantfile

構築する仮装マシンのスペックやプロビジョニングツールの指定など、仮想マシンの構成を記述する。
Rubyベース。
基本的に、本ファイルとプロビジョニングツールの設定ファイルの2つがあれば、どこでも同じ環境を再現できる。

コマンド

基本

# バージョン確認
$ vagrant -v

# ヘルプ
$ vagrant -h

仮想環境のベースとなるBoxファイルを準備

$ vagrant box add NAME URL
# sample
$ vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
(Vagrantfileのconfig.vm.boxディレクトリで指定する。)

BoxファイルはVeeweeで作成することも出来る。
http://www.ryuzee.com/contents/blog/6614

Box一覧の確認

$ vagrant box list

Vagrantfileの作成

$ vagrant init BOX_NAME
# sample
$ vagrant init centos64

Vagrantfileの設定

sample.rb
$ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    config.vm.box="centos64"

    //ネットワークの設定
    config.vm.network :private_network, ip:"192.168.33.10"

    //GUIモードの設定
    config.vm.provider :virtualbox do |vb|
        vb.gui = true
    end
end

※ホストオンリーネットワーク
 →ホストOSとゲストOS間でのみ通信できるネットワーク。
  上記では、ゲスト側に192.168.33.10(任意)を割り当てている。

以下は古い書き方。

誤)config.vm.network :hostonly, "192.168.33.10"
正)config.vm.network :private_network, ip:"192.168.33.10"

仮想マシンの起動

$ vagrant up

※Vagrantfileと同じディレクトリで実行する

GUIモードにしているとVirtualBoxが起動するので、id/passともに"vagrant"でログイン

sshでログイン

$ vagrant ssh

※仮想マシンにてsshdが起動している必要あり。

通常の方法でssh出来るようにする。

Chef Soloをknife-soloで動かすことを見越して、通常のsshアクセス、つまり

$ ssh 192.168.33.10

でsshできるようにする。

# ~/.ssh/config
Host 192.168.33.*
IdentityFile ~/.vagrant.d/insecure_private_key
User vagrant

もしくは

$ vagrant ssh-config --host melody

で仮想サーバへのssh設定を吐き出してくれるため、

$ vagrant ssh-config --host melody >> ~/.ssh/config

とすることで

$ ssh melody

でログインできるようになる。

sshログイン時の設定確認

$ vagrant ssh-config

status確認

$ vagrant status
Current machine states:
default                   running (virtualbox)
(仮想マシン名)  (status)

仮想マシンの停止

$ vagrant halt

仮想マシンの削除

$ vagrant destroy

仮想マシンのエクスポート

$ vagrant package

→package.boxという名前のBoxファイルが生成される。
それを配布し、受け取った側は

$ vagrant box add new_box package.box

で利用できる。

vagrantをより便利に

sahara

saharaを用いると、簡単に仮想マシンの状態保存・ロールバックが出来ます。

saharaでVagrantの状態管理
http://qiita.com/kidachi_/items/ba365905b2a770c72be1

chef関連

サーバ構成管理ツールといえばchef。

Chefの基本
http://qiita.com/kidachi_/items/9d569b8673e70ef93f0e

knife-soloによるChefの実行
http://qiita.com/kidachi_/items/b222fb2892e6108c46d5

795
801
1

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
795
801