端口转发不适用于Test-Kitchen和Vagrant

use*_*901 3 vagrant test-kitchen

我在Ubuntu Linux 14.04上,我正在尝试使用kitchen-vagrant创建一个Centos VM.我想要端口转发,以便我可以在我的本地机器上转发apache tomcat.虽然我已经在他们的文档中指定了端口号和专用网络IP,但它无法正常工作.在我的机器上,我得到"网站无法访问".

---
driver:
  name: vagrant

provisioner:
  name: chef_zero

platforms:
  - name: centos-6.7
    network:
      - ["forwarded_port", {guest: 8080, host: 8080}]
      - ["private_network", {ip: "192.168.33.33"}]

suites:
  - name: default
    run_list:
      - recipe[env_rundeck_war::default]
    attributes:
Run Code Online (Sandbox Code Playgroud)

当我登录VM(kitchen login)时,我可以在端口8080上访问Tomcat.

jose@jose-desktop $ kitchen login
...
[vagrant@default-centos-67 ~]$ curl -i localhost:8080
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Sat, 30 Jul 2016 18:12:23 GMT
Run Code Online (Sandbox Code Playgroud)

我试过在该driver部分下移动网络设置,但这也没有帮助.看起来他们是如何在文档上做的.

Ste*_*ing 7

实际上,network是(厨房 - 流浪者)的参数driver.因此,以下配置是正确的:

platforms:
  - name: centos-6.7
    driver_config:
      network:
        - ["forwarded_port", {guest: 8080, host: 8080}]
        - ["private_network", {ip: "192.168.33.33"}]
Run Code Online (Sandbox Code Playgroud)

你可以看出来的内容Vagrantfile.kitchen/kitchen-vagrant/<suite>/以下行(以加快您的验证步骤):

c.vm.network(:forwarded_port, {:guest=>8080, :host=>8088})
Run Code Online (Sandbox Code Playgroud)

顺便说一句.private_network如果你只想转发一个端口(你可以省略该行),你不需要a .