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