#navi_header|技術| * CPUやメモリをカスタマイズしたい - 基本:(ようするに、Provider毎に違うのでそっちを見てね、ということ。) -- http://docs.vagrantup.com/v2/providers/configuration.html - VirtualBox -- http://docs.vagrantup.com/v2/virtualbox/configuration.html - VMware(Fusion) -- http://docs.vagrantup.com/v2/vmware/configuration.html * ネットワーク設定について + Vagrantでのネットワーク設定はどう抽象化されているか確認。"private"と"public"の二種類がある。 ++ http://docs.vagrantup.com/v2/networking/index.html ++ "public"はおおよそ、いわゆる「Bridge接続」に相当するらしい。 ++ "private"が、Providerごとにズレがあるらしい。 + VirtualBoxでの"private"ネットワークについて。デフォルトはHostOnlyだが、内部ネットワークも利用できる。 ++ http://docs.vagrantup.com/v2/virtualbox/networking.html ++ https://www.virtualbox.org/manual/ch06.html * 1つのVagrantfileで複数のVMを設定して、しかもお互いに通信できるようにする 参考: - 一つの Vagrantfile で複数の仮想マシンを管理する | CUBE SUGAR STORAGE -- http://momijiame.tumblr.com/post/65612928334/vagrantfile - [Vagrant] Vagrant で複数のVM を立ち上げて、お互いに通信できるようにするには [VirtualBox] - Qiita -- http://qiita.com/sho7650/items/cf5a586713f0aec86dc0 ポイント: - "config.vm.define" で複数の仮想マシンを定義できる。 - 仮想マシン間で通信したい場合は、":private_network" を使う。静的IPアドレス設定など。 -- VirtualBox Providerの場合、":private_network"だとHostOnly networkとなる。 --- これはゲストOS間 + ホストOS間の通信が可能になり、ただし外には出れない。 --- ただし、VirtualBox Providerの場合はNATインターフェイスは残してくれてるので、外部へはそちらを使って通信するようになる。 -- 記事によっては "virtualbox__intnet:" を使え、というのもある。ただコレ指定すると、ホストからゲストに直接接続できなかった記憶があるので、NAT側でport forward設定する必要があるかも? Vagrantfileの例1: #pre||> # -*- 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: #pre||> 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 ||< #navi_footer|技術|