2016-07-20 11 views
1

Vagrantは、ネットワークをとしてVirutalboxに設定していても、アダプター1(eth0)にネットワークタイプを強制しています。
私はVirtualboxを通してすべてをセットアップすることができ、すべてのVMはeth0を介して互いにやりとりでき、ポート転送も同様に動作します。私は同僚の間で簡単に配布するために同じ方法でVagrantを働かせたいと思っています。Vagrantはアダプター1のNatNetworkを許可していません

他の人がこの問題を持っており、それはベイグラントによって対処されていないように見えます: https://github.com/mitchellh/vagrant/issues/2779

誰もが回避策を知っていますか?

詳細:

$ VBoxManage list natnetworks 
NetworkName: ff_mgmt 
IP:    10.0.2.1 
Network:  10.0.2.0/24 
IPv6 Enabled: No 
IPv6 Prefix: fd17:625c:f037:2::/64 
DHCP Enabled: No 
Enabled:  Yes 
Port-forwarding (ipv4) 
    https1:tcp:[]:4441:[10.0.2.11]:443 
    https2:tcp:[]:4442:[10.0.2.12]:443 
    https3:tcp:[]:4443:[10.0.2.13]:443 
    ssh1:tcp:[]:2221:[10.0.2.11]:22 
    ssh2:tcp:[]:2222:[10.0.2.12]:22 
    ssh3:tcp:[]:2223:[10.0.2.13]:22 
loopback mappings (ipv4) 
    127.0.0.1=2 

Vagrantfileの関連部分:

boxes = [ 
{ 
    :name => "ff1", 
    :ip => "10.0.2.11", 
    :ssh_port => "2221", 
    :https_port => "4441", 
    :mac => "0800270fa302", 
    :memory => "8192", 
    :cpus => "4" 
}, 
{ 
    :name => "ff2", 
    :ip => "10.0.2.12", 
    :ssh_port => "2222", 
    :https_port => "4442", 
    :mac => "0800270fb302", 
    :memory => "8192", 
    :cpus => "4" 
}, 
{ 
    :name => "ff3", 
    :ip => "10.0.2.13", 
    :ssh_port => "2223", 
    :https_port => "4443", 
    :mac => "0800270fc302", 
    :intnet2 => "seg5a", 
    :memory => "8192", 
    :cpus => "4" 
} 
] 

Vagrant.configure(2) do |config| 
boxes.each do |opts| 
    config.vm.define opts[:name] do |config| 

     config.vm.box = "ff" 
     #config.vm.box_version = 402 

     config.vm.hostname = opts[:name] 

     config.ssh.username = 'niska' 
     config.ssh.private_key_path = '/home/niska/.ssh/id_rsa' 
     config.vm.network :private_network, ip: opts[:ip] 
     config.vm.network :forwarded_port, guest: 22, guest_ip: opts[:ip], host: opts[:ssh_port], id: 'ssh' 
     config.vm.network :forwarded_port, guest: 443, host: opts[:https_port] 

     config.vm.provider "virtualbox" do |vb| 
      vb.gui = false 
      vb.memory = opts[:memory] 
      vb.cpus = opts[:cpus] 

      vb.customize ["modifyvm", :id, "--nic1", "natnetwork"] 
      vb.customize ["modifyvm", :id, "--nictype1", "virtio"] 
      vb.customize ["modifyvm", :id, "--macaddress1", opts[:mac]] 
      #vb.customize ["modifyvm", :id, "--intnet1", "ff_mgmt"] 

     end 
    end 
end 

vagrant upの出力。通知の上書きnatnetwork。また、ポート転送は異なるポートを選択するため、接続に失敗します。

$ vagrant reload ff1 
==> ff1: Attempting graceful shutdown of VM... 
    ff1: Guest communication could not be established! This is usually because 
    ff1: SSH is not running, the authentication information was changed, 
    ff1: or some other networking issue. Vagrant will force halt, if 
    ff1: capable. 
==> ff1: Forcing shutdown of VM... 
==> ff1: Clearing any previously set network interfaces... 
==> ff1: Preparing network interfaces based on configuration... 
->>>  ff1: Adapter 1: nat      <<<--- (overrode w/ 'nat') 
    ff1: Adapter 2: hostonly 
==> ff1: Forwarding ports... 
    ff1: 22 (guest) => 2221 (host) (adapter 1) 
    ff1: 443 (guest) => 4441 (host) (adapter 1) 
==> ff1: Running 'pre-boot' VM customizations... 
==> ff1: Booting VM... 
==> ff1: Waiting for machine to boot. This may take a few minutes... 
    ff1: SSH address: 127.0.0.1:22 
    ff1: SSH username: niska 
    ff1: SSH auth method: private key 
    ff1: Warning: Authentication failure. Retrying... 
    ... 
    Vagrant never connects 
+0

https://www.vagrantup.com/docs/virtualbox/boxes.htmlには、nic1 *がNATアダプタである必要があると記載されています。私はVirtualBoxの 'natnetwork'と' nat'の違いに慣れていませんが、私が前者が新しいものであることは分かっています。バゲットも違いを知らないのでしょうか? –

答えて

0

nic1(eth0)をNAT以外に設定しないでください。 virtualboxは最初のインターフェースがNATであることを要求します。

ff1: Warning: Authentication failure. Retrying... 

あなたはnatnetworkするNICのネットワークの種類を変更した場合、その後、浮浪者がマシンへのSSHする方法を見つけ出すことはできません。

プロビジョニングを終了した後、ネットワーク設定を最初にプロビジョニングするときに、アップグレード担当者が必要な場合は、ネットワーク設定を変更します。しかしながら;その時点以降、あなたは迷彩を使用することはできません。

+1

私は回避策を望んでいましたが、「しないでください」とは思いませんでした:)私はVMwareと迷惑メールに切り替わりました。これら2つの製品が一緒にこの問題を解決できます – riotejas

関連する問題