无法登录到通过 Test Kitchen 管理的 Vagrant boxes

Cannot Login Into Vagrant boxes managed via Test Kitchen

我有一个非常样板的 .kitchen.yml 以下内容:

---
driver:
  name: vagrant
platforms:
  - name: ubuntu-14.04
suites:
   - name: default
   run_list:
    - recipe[webserver::default]

当我 运行 kitchen converge 我得到以下信息:

==> default: Setting hostname...
   ==> default: Replaced insecure vagrant key with less insecure key!
   ==> default: Machine not provisioned because `--no-provision` is specified.
   Waiting for SSH service on 127.0.0.1:2222, retrying in 3 seconds
   Waiting for SSH service on 127.0.0.1:2222, retrying in 3 seconds
   Waiting for SSH service on 127.0.0.1:2222, retrying in 3 seconds
   .....
   ......

停止谷歌搜索后,我了解到 Vagrant 1.7+ 将默认的 ssh 密钥替换为他们认为的 less insecure key

config.ssh.insert_key = false 但由于以下原因它不起作用:

  1. 已将 kitchen.yml 更新为 insert_key = false

    1.1 这不起作用,因为生成的 Vagrantfile 具有布尔值 false 作为 "false" string!

  2. 尝试使用全局 Vagrantfile file

    2.1 这没有用,就好像文件还没有被读取一样!

  3. 尝试自己搭建盒子,但没有成功。

有人设法修复或解决这个问题吗?

我从 vagrant 降级到 1.8.41.8.5 并且成功了。

我不得不 运行 kitchen destroy blah 删除使用 1.8.5 创建的实例。然后,当我运行 kitchen converge blah 时,它起作用了。

注意这个问题只发生在 Centos 机器上,而不是在 Ubuntu 机器上。

kitchen-vagrant驱动程序已经修复。

您可以更新它,或手动进行更改: https://github.com/test-kitchen/kitchen-vagrant/commit/3178e84b65d3da318f818a0891b0fcc4b747d559

那么这个 .kitchen.yml 就可以了:

driver:
  name: vagrant
  ssh:
    insert_key: false

显然其他修复解决了最初 post-er 的问题,但不是我的。发在这里以防对其他人有用...

解决这个问题几个小时后,我终于在 VirtualBox 管理器中注意到,在 Settings/Network/Advanced 下,"Cable Connected" 复选框未选中! 卧槽,我的虚拟机的虚拟网线不是"connected?"(大叹)

我通过将此添加到我的 .kitchen.yml 文件解决了这个问题:

driver: name: vagrant customize: cableconnected1: 'on'

我不知道为什么虚拟机会出现未插入的电缆。我不认为我的解决方法是自然的解决方案,但这是我所拥有的并且有效。

更新:更新版本的 Vagrant 和 VBox 不再需要它,对于所有现在通过 Google 找到它的人来说。

我遇到了同样的问题,我只需要更新 kitchen-vagrant gem。您可以通过首先查看您安装了哪个 gem 来执行此操作 $ gem list ... kitchen-vagrant (0.20.0) ...

然后执行 gem update kitchen-vagrant 并重试 kitchen verify 命令。

kitchen-vagrant 维护者在这里让大家知道这个问题完全与 Vagrant、VirtualBox 和便当盒矩阵有关。

检查版本:

VBoxManage --version vagrant --version vagrant box list | grep bento/

简而言之,有一系列粗略的 Vagrant 和 VirtualBox 版本引起了各种各样的破坏,因此根据便当盒 built/tested 对您不利的版本,您可能会或可能不会遇到它。

目前,已知以下配置有效,最后是什么:

kitchen-vagrant 1.2.1 Vagrant 2.0.0 VirtualBox 5.1.28 bento boxes version 201708.22.0+

用户可以查看 Vagrant Cloud 上的盒子,看看任何给定的盒子是针对什么进行测试的,例如bento/14.04 version 201708.22.0。目前它是一个丑陋的 JSON 斑点,但非常有用,因为你可以看到这个是 built/tested 反对的。任何上传的盒子 运行 都通过厨房 运行 不仅测试其基本功能,还测试它对大多数*平台的共享文件夹支持。

*这里的大多数指的是除了已知问题发行版和 FreeBSD 之外的几乎所有东西

对我有用的配置是:

PS> vboxmanage --version
5.1.26r117224
PS> gem list | grep kitchen-vagrant
kitchen-vagrant (1.2.1)
PS> vagrant --version
Vagrant 1.9.6

使用 ChefDK 2.3.4.1。