home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

技術/運用管理/Vagrant/Vagrantfile書き方メモ

技術/運用管理/Vagrant/Vagrantfile書き方メモ

技術 / 運用管理 / Vagrant / Vagrantfile書き方メモ
id: 1322 所有者: msakamoto-sf    作成日: 2014-11-16 20:57:38
カテゴリ: DevOps VMware Vagrant VirtualBox 

CPUやメモリをカスタマイズしたい

ネットワーク設定について

  1. Vagrantでのネットワーク設定はどう抽象化されているか確認。"private"と"public"の二種類がある。
    1. http://docs.vagrantup.com/v2/networking/index.html
    2. "public"はおおよそ、いわゆる「Bridge接続」に相当するらしい。
    3. "private"が、Providerごとにズレがあるらしい。
  2. VirtualBoxでの"private"ネットワークについて。デフォルトはHostOnlyだが、内部ネットワークも利用できる。
    1. http://docs.vagrantup.com/v2/virtualbox/networking.html
    2. https://www.virtualbox.org/manual/ch06.html

1つのVagrantfileで複数のVMを設定して、しかもお互いに通信できるようにする

参考:

ポイント:

  • "config.vm.define" で複数の仮想マシンを定義できる。
  • 仮想マシン間で通信したい場合は、":private_network" を使う。静的IPアドレス設定など。
    • VirtualBox Providerの場合、":private_network"だとHostOnly networkとなる。
      • これはゲストOS間 + ホストOS間の通信が可能になり、ただし外には出れない。
      • ただし、VirtualBox Providerの場合はNATインターフェイスは残してくれてるので、外部へはそちらを使って通信するようになる。
    • 記事によっては "virtualbox__intnet:" を使え、というのもある。ただコレ指定すると、ホストからゲストに直接接続できなかった記憶があるので、NAT側でport forward設定する必要があるかも?

Vagrantfileの例1:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  # All Vagrant configuration is done here. The most common configuration
  # options are documented and commented below. For a complete reference,
  # please see the online documentation at vagrantup.com.

  # 共通して使うBOX名を書いておく。
  config.vm.box = "hashicorp/precise64"

  config.vm.define "web" do |node|
    node.vm.hostname = "web"
    # お互いに通信できるよう、VirtualBox でのHostOnly networkを使う。
    node.vm.network :private_network, ip: "192.168.56.51"
  end

  config.vm.define "db" do |node|
    node.vm.hostname = "db"
    # お互いに通信できるよう、VirtualBox でのHostOnly networkを使う。
    node.vm.network :private_network, ip: "192.168.56.52"
  end

end

→ "vagrant ssh web", "vagrant ssh db" でSSH接続できる。

Vagrantfileの例2:

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.define "web" do |node|
    # それぞれでBOX名を指定
    node.vm.box = "hashicorp/precise64"
    node.vm.hostname = "web"
    node.vm.network :private_network, ip: "192.168.56.51"
  end

  config.vm.define "db" do |node|
    # それぞれでBOX名を指定
    node.vm.box = "hashicorp/precise64"
    node.vm.hostname = "db"
    node.vm.network :private_network, ip: "192.168.56.52"
  end
end


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2014-11-16 20:58:04
md5:ef6eda7c9c12280fd49bd504d63c5a57
sha1:4e4a71dd0def12a3fc9363eafab8e23adfadb7ea
コメント
コメントを投稿するにはログインして下さい。