Vagrant up 失败并显示警告:远程连接断开。重试

问题描述 投票:0回答:2

升级到 vagrant 版本 2.1.1 和最新的 centos/7 (virtualbox, 1803.01) 和 $vagrant up 现在在加载新密钥后无法构建。所使用的 Vagrant 文件在以前版本的 vagrant (2.0.3) 上运行良好。

有趣的是,我可以使用 vagrant 手动连接到实例,使用新密钥既可以使用直接 ssh,也可以使用:

$vagrant ssh nat

已经尝试过的事情:
vagrant 内延长超时config.vm.boot_timeout = 1200
卸载了 vagrant 和 virtualbox + 在重新安装之前手动删除插件并删除 C:\Users\owner\.vagrand.dC:\Users\owner\.VirtualBox 目录
尝试了旧版本的 nat.vm.box_version = "1704.01" 以前有效。

为什么不回滚?
最初我升级是因为我遇到了另一个问题,我将提出一个单独的线程。一旦我创建了它,就会链接到这里。

版本
主机操作系统:Windows 7 Professional
访客操作系统:centos/7 1803.01

流浪者版本:2.1.1

Vagrant 插件列表:
流浪者主机管理器(1.8.8)
流浪者主机 (2.8.1)
vagrant-proxyconf (1.5.2)
流浪者重新加载(0.0.1)
流浪者共享(1.1.9)
vagrant-vbguest (0.15.1)

$ vagrant up
Bringing machine 'nat' up with 'virtualbox' provider...
Bringing machine 'fei' up with 'virtualbox' provider...
==> nat: Importing base box 'centos/7'...
==> nat: Matching MAC address for NAT networking...
==> nat: Checking if box 'centos/7' is up to date...
==> nat: Setting the name of the VM: brand_nat_1526342206425_95671
==> nat: Fixed port collision for 22 => 2222. Now on port 2200.
==> nat: Clearing any previously set network interfaces...
==> nat: Preparing network interfaces based on configuration...
    nat: Adapter 1: nat
    nat: Adapter 2: intnet
==> nat: Forwarding ports...
    nat: 22 (guest) => 2200 (host) (adapter 1)
==> nat: Running 'pre-boot' VM customizations...
==> nat: Booting VM...
==> nat: Waiting for machine to boot. This may take a few minutes...
    nat: SSH address: 127.0.0.1:2200
    nat: SSH username: vagrant
    nat: SSH auth method: private key
    nat: Warning: Connection aborted. Retrying...
    nat: Warning: Connection reset. Retrying...
    nat: Warning: Remote connection disconnect. Retrying...
    nat: Warning: Connection aborted. Retrying...
    nat:
    nat: Vagrant insecure key detected. Vagrant will automatically replace
    nat: this with a newly generated keypair for better security.
    nat:
    nat: Inserting generated public key within guest...
    nat: Removing insecure key from the guest if it's present...
    nat: Key inserted! Disconnecting and reconnecting using new SSH key...
    nat: Warning: Remote connection disconnect. Retrying...
    nat: Warning: Remote connection disconnect. Retrying...
    nat: Warning: Remote connection disconnect. Retrying...
    nat: Warning: Remote connection disconnect. Retrying...
    nat: Warning: Remote connection disconnect. Retrying...
    nat: Warning: Remote connection disconnect. Retrying...
    nat: Warning: Remote connection disconnect. Retrying...
    nat: Warning: Remote connection disconnect. Retrying...
    nat: Warning: Remote connection disconnect. Retrying...
    Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.

If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.

If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.

还显示了我稍微清理过的流浪者文件。列出的脚本实际上都没有运行,因为盒子在执行之前就失败了。

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

# abbreviated brand name
BRAND_NAME = "brand"
TOP_LEVEL_DOMAIN = ".some.dev"
BOX_NAME = "centos/7"

Vagrant.configure(2) do |config|

  config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
  config.vm.boot_timeout = 1200

  if Vagrant.has_plugin?("vagrant-proxyconf")
    config.proxy.http     = "http://192.168.100.3:3128/"
    config.proxy.https    = "https://192.168.100.3:3128/"
    config.proxy.no_proxy = "localhost,127.0.0.1,.some.lan"
  end

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    vb.memory = 2048
    vb.cpus = 2
    vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
  end

  config.vm.define "nat" do |nat|
    nat.vm.box = BOX_NAME
    nat.vm.network "private_network", ip: "10.0.0.2", virtualbox__intnet: true
    nat.vm.hostname = "nat.staging." + BRAND_NAME + TOP_LEVEL_DOMAIN
    nat.vm.provision :hosts, :sync_hosts => true
    nat.vm.provision "shell", path: "./scripts/aws_replication.sh"
    nat.vm.provision "shell", path: "./scripts/nat_ssh.sh"
    nat.vm.provision "shell", path: "./scripts/nat_staging.sh"
    nat.vm.provision "shell", path: "./scripts/nat_git_clone.sh"
    nat.vm.provision "shell", path: "./scripts/nat_set_ansible.sh"
  end

  config.vm.define "fei" do |fei|
    fei.vm.box = BOX_NAME
    fei.vm.network "private_network", ip: "10.0.0.4", virtualbox__intnet: true
    fei.vm.network "forwarded_port", guest: 80, host: 80, auto_correct: true
    fei.vm.network "forwarded_port", guest: 443, host: 443, auto_correct: true
    fei.vm.network "forwarded_port", guest: 9000, host: 9000, auto_correct: true
    fei.vm.provision :hosts, :sync_hosts => true
    fei.vm.hostname = BRAND_NAME + ".staging" + TOP_LEVEL_DOMAIN
    fei.vm.provision "shell", path: "./scripts/aws_replication.sh"
    fei.vm.provision "shell", path: "./scripts/non-nat_key_staging.sh"
  end
end
vagrant virtualbox centos7 vagrant-windows
2个回答
0
投票

nat:检测到 Vagrant 不安全密钥。 Vagrant 会自动替换
nat:使用新生成的密钥对以提高安全性。

每次运行“Vagrant up”命令时,它都会尝试查找不安全的密钥并替换它。要使用路径“config.ssh.private_key_path”中提到的默认密钥,请在 Vagrantfile 中包含以下条目。

在 Vagrantfile 中使用 config.ssh.insert_key = false 然后尝试。


-1
投票

我使用 OSX,我通过重新启动计算机解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.