Vagrant概略

インストール

CentOS公式BOXを使ってみる

Vagrant Command

a graph image

外部にアクセスするのに Proxy を通す場合、環境変数 http_proxy に Proxy サーバの URL を設定する

$ export http_proxy = "http://foo%40acme.com:password@proxy:3128/

(%40は@)

commandoptionexplanation
vagrant box add $NAME $URL--provider $PROVIDER
vagrant box list
vagrant box remove $NAME $PROVIDER
vagrant box repackage $NAME $PROVIDER
vagrant destroy-f(--force)破棄
vagrant halt-f(--force)VMをシャットダウン
vagrant init[box-name] [box-url]Vagrantfileの雛形を作る
vagrant package--base $NAMEVM名 (Virtualbox GUIのマシン名 or Vagrant の UUID)
--output $NAME出力するBOX名
--include x,y,z添付する 一般ファイル
--vagrantfile $FILE添付する Vagrantfile
vagrant plugin install $NAME [$LICENSE-FILE]
vagrant plugin list
vagrant plugin uninstall $NAMEuninsatll 出来なかったら
~/.vagrant.d/plugins.json
を直接編集せよ
vagrant provision--provision-with x,y,zオプション無しの時全ての provision を実行。
--provision で特定の provision のみ実行
(shell や chef などを指定)
vagrant reload[--no-provision] [--provision-with x,y,z]halt → up と同じ
vagrant resumesuspend されている VM を再開
vagrant ssh実行中の Vagrant マシンに ssh アクセスする
vagrant ssh-configssh 設定内容を ~/.ssh/config 形式で出力。
sshコマンドでアクセスしたければ vagrant ssh-config >> ~/.ssh/config で設定
vagrant status
vagrant suspend
vagrant upVM 起動

環境変数

export VAGRANT_DEBUG_LAUNCHER

デバックログ ON

export VAGRANT_DEFAULT_PROVIDER = "vmware_fusion"

デフォルトは virtualbox

export VAGRANT_CHECKPOINT_DISABLE

VM起動時に、環境のチェックをしない

export VAGRANT_CWD = "path"

Vagrantの Work directory

export VAGRANT_DOTFILE_PATH = "/var/vagrant/work/.vagrant"

デフォルトは、~/.vagrant

export VAGRANT_HOME = "path"

デフォルトは、~/.vagrant.d

export VAGRANT_LOG = "{debug|info|warn|error}"

ログレベル

export VAGRANT_NO_COLOR
export VAGRANT_NO_PLUGINS
export VAGRANT_SKIP_SUBPROCESS_JAILBREAK

Vagrant に非公式な改造を加えた場合に、起動を許可する

export VAGRANT_VAGRANTFILE = "path"

Vagrantfile のパス。デフォルトの振る舞いは、カレントディレクトリから / に向かって順に探索する

Sahara plugin

仮想マシンへの実験的な変更を何度も行いたい時に使う

$ vagrant plugin install sahara
$ vagrant plugin list
サンドボックスに入るvagrant sandbox on
サンドボックスの状態vagrant sandbox status
サンドボックスのロールバックvagrant sandbox rollback
サンドボックスのコミットvagrant sandbox commit
サンドボックスから出るvagrant sandbox off

commit, rollback しても、off コマンド実行までサンドボックスモードは続く

Snapshot (Vagrant 1.8〜)

Vagrant 1.8 から、Provider (Virtualbox / Vmware) の Snapshot が使えるようになった

スナップショット作成(無名)vagrant snapshot push
スナップショット復元(HEADから)vagrant snapshot pop
スナップショット作成vagrant snapshot save [name]
スナップショット復元vagrant snapshot restore [name]
名前付きスナップショットの一覧vagrant snapshot list

Vagrantfile

ENV["LC_ALL"] = "ja_JP.UTF-8"

Vagrant.require_version ">= 1.3.5", "< 1.4.0"
Vagrant.configure(2) do |config|
  config.vm.box="centos/7"
  config.vm.network :private_network, ip:"192.168.33.10"
  config.vm.provision :shell, :inline => <<-EOT
    yum update -y
    service iptables stop
    chkconfig iptables off
    
    yum -y install httpd
    chkconfig httpd on
    service httpd start
  EOT

  config.vm.provider :virtualbox do |vb|
    vb.gui = true
  end
end

ネットワーク

プロバイダーの設定


プロビジョニングの設定

同期フォルダ



Multi Machine

Vagrant.configure(2) do |config|
  config.vm.box="centos/7"

  config.vm.define :web do |web|
    web.vm.hostname = "web"
    web.vm.network :private_network, ip:"192.168.33.11"
  end

  config.vm.define :db do |db|
    db.vm.hostname = "db"
    db.vm.network :private_network, ip:"192.168.33.12"
  end
end

一つの Vagrantfile で複数の VM を立ち上げることができる

参考文献


Ansible


*1 Provisioningツール自体は仮想だけではなく物理マシンも対象としている
*2 .vagrant/machines/default/virtualbox/private_key

添付ファイル: filevbox2.png 71件 [詳細] filevbox.png 62件 [詳細] filevagrant.png 74件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   sitemap
Last-modified: 2016-11-09 (水) 01:41:28 (24d)
ISBN10
ISBN13
9784061426061