【问题标题】:Vagrant up fails with Warning: Remote connection disconnect. RetryingVagrant up 失败并显示警告:远程连接断开。重试
【发布时间】:2018-10-24 21:23:06
【问题描述】:

升级到 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 插件列表:
vagrant-hostmanager (1.8.8)
流浪主机 (2.8.1)
vagrant-proxyconf (1.5.2)
vagrant-reload (0.0.1)
vagrant-share (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.

还展示了我稍微清理过的 vagrant 文件。列出的脚本实际上都没有运行,因为框在执行之前就失败了。

# -*- 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


    【解决方案1】:

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

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

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

    【讨论】:

    • 你能告诉我们 Vagrantfile 的位置吗?提前致谢!
    • 在 Windows 上 Vagrant 文件的完整路径是:C:\Users\your username\.vagrant.d\boxes\laravel-VAGRANTSLASH-homestead\9.1.0\virtualbox\Vagrantfile
    【解决方案2】:

    我使用的是 OSX,我通过重启电脑解决了这个问题。

    【讨论】:

    • 这可以作为评论安全地发表
    猜你喜欢
    • 2020-11-12
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 2014-11-21
    • 2014-09-22
    相关资源
    最近更新 更多