web-dev-qa-db-ja.com

テストキッチンがwinrmを検出せず、WindowsゲストにSSHを使用する

窓付きのキッチンをテストするのは初めてです

Vagrant(virtualbox)を備えたTest Kitchenを使用して、Windowsマシンでシェフのレシピをテストしています

私が持っています win-2012-r2 Vagrantで正常に動作するボックス(winrmとrdpの両方が動作します)

しかし、キッチンで同じものを使用すると、winrmの代わりにSSHに接続しようとします

これが私の.kitchen.ymlファイル

---
driver:
  name: vagrant

provisioner:
  name: chef_zero

verifier:
  name: inspec

transport:
  name: winrm
  elevated: true

platforms:
  - name: win-2012-r2
    driver:
      box: win-2012-r2
      communicator: 'winrm'
      winrm_username: 'admin'
      winrm_password: 'adminadmin'

suites:
  - name: default
    run_list:
      - recipe[ttest::default]

実行中kitchen test、出力は

-----> Starting Kitchen (v1.11.1)
-----> Cleaning up any prior instances of <default-win-2012-r2>
-----> Destroying <default-win-2012-r2>...
       Finished destroying <default-win-2012-r2> (0m0.00s).
-----> Testing <default-win-2012-r2>
-----> Creating <default-win-2012-r2>...
       Bringing machine 'default' up with 'virtualbox' provider...
       ==> default: Importing base box 'win-2012-r2'...
==> default: Matching MAC address for NAT networking...
       ==> default: Setting the name of the VM: kitchen-ttest-default-win-2012-r2_default_1472129655910_94157
       ==> default: Clearing any previously set network interfaces...
       ==> default: Preparing network interfaces based on configuration...
           default: Adapter 1: nat
       ==> default: Forwarding ports...
           default: 22 (guest) => 2222 (Host) (adapter 1)
       ==> default: Booting VM...
       ==> default: Waiting for machine to boot. This may take a few minutes...
           default: SSH address: 127.0.0.1:2222
           default: SSH username: vagrant
           default: SSH auth method: private key
......................
STDERR: 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.

どこに行けないのかわからない。

Test Kitchen version 1.11.1
Vagrant 1.8.5
VirtualBox 5.1

みんなありがとう

3
Shan

portを5985(または必要なポート)に設定してみてください。
例えば:

platforms: - name: windows2016 transport: name: winrm elevated: true port: 5985

これが機能しない場合は、kitchen converge -l debugを試して、マシンがタイムアウトした理由に関する詳細情報を入手してください。

2
Zwadderich

これにも同様の問題がありました。私の場合、この問題を修正するには、kitchen.ymlファイルでコミュニケーター属性を「winrm」として指定する必要がありました。

driver:
  name: vagrant
  boot_timeout: 1200
  gui: true
  communicator: winrm

また、あなたの資格情報が私のものと異なって見えることに気づきました。 「winrm_username」と「winrm_password」ではなく、「platform」/「driver_config」で「username」と「password」を指定します。また、私の場合、私のポートは通常の5985ではありません。これはカスタム仮想ボックスであり、私の場合は55985(ホスト)が5985(ゲスト)にマップされるためですが、Zwadderichが述べているように正しいポートを使用する必要があります。

transport:
  name: winrm
  elevated: true
  username: Tester
  password: [PASSWORD]
  port: 5985

私のボックスはカスタムWindowsボックスであるため、名前はvagrantで知られているボックスと一致します

platforms:
  - name: VAGRANT-CUSTOM-BOX-NAME
    driver_config:
      username: Tester
      password: [PASSWORD]
      vm_hostname: false
    driver:
      port: 55985
      customize:
        memory: 4048

「driver_config」セクションは、vagrantを使用してボックスを起動するために使用される生成されたvagrantファイルに影響を与えるように見えます。これがお役に立てば幸いです。

1