无法登录通过Test Kitchen

时间:2016-08-16 23:44:00

标签: ssh vagrant chef 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+用他们认为是less insecure key的内容替换了默认的ssh密钥。

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

  1. 使用insert_key = false

    更新了kitchen.yml

    1.1这不起作用,因为生成的Vagrantfile具有布尔false为“假”string

  2. 尝试使用全局Vagrantfile file

    2.1这不起作用,好像文件甚至没有被阅读!

  3. 试图建立自己的盒子,但没有成功。

  4. 任何人都设法修复或解决此问题?

6 个答案:

答案 0 :(得分:18)

显然,其他修补程序解决了原来的问题,但不是我的问题。如果它对其他人有用,请在此处发布...

经过几个小时解决这个问题,我终于在VirtualBox Manager中注意到,在Settings / Network / Advanced下," Cable Connected"复选框未选中! WTF,我的虚拟机的虚拟电缆没有连接?" (大叹)

我通过将此问题添加到 .kitchen.yml 文件来解决此问题:

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

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

更新:对于所有通过Google发现此问题的人来说,不再需要更新版本的Vagrant和VBox。

答案 1 :(得分:4)

这里的厨房 - 流浪汉维护者让每个人都知道问题必须完全与游戏中的Vagrant,VirtualBox和便当盒矩阵有关。

检查版本:

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

简而言之,有一系列Vagrant和VirtualBox版本的粗略系列导致了各种各样的havok,因此根据哪些版本构建/测试便当盒可能会或可能不会经历它。

目前,已知以下配置正在工作以及最后一个:

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 blob,但非常有用,因为你可以看到这个是建立/测试的。任何上传的文件夹都通过厨房运行来测试,不仅可以测试基本功能,还可以测试大多数*平台的共享文件夹支持。

*这里的大多数意味着除了已知问题发行版和FreeBSD之外几乎所有内容

答案 2 :(得分:2)

请注意,此问题仅发生在Centos框中,而不是在Ubuntu框中。

kitchen-vagrant驱动程序已修复。

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

然后这个.kitchen.yml将起作用:

driver:
  name: vagrant
  ssh:
    insert_key: false

答案 3 :(得分:1)

我从vagrant1.8.4降级为1.8.5并且有效。

我必须运行kitchen destroy blah才能删除使用1.8.5创建的实例。然后,当我发送kitchen converge blah时它起作用了。

答案 4 :(得分:1)

我有同样的问题,我只需更新厨房 - 流浪宝石。您可以通过首先查看已安装的gem来执行此操作 $ gem list ... kitchen-vagrant (0.20.0) ...

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

答案 5 :(得分:0)

对我有用的配置是:

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。