从本地网络使用 puphpet 访问 vagrant VM?

Access vagrant VM with puphpet from local network?

我用了两个星期的 vagrant 和 puphpet,效果很好。在我的例子中,我将只使用 http://myserver.dev 作为 puphpet 建议添加到我的主机文件

192.168.56.101 myserver.dev

现在我想从本地网络中的另一台计算机访问我的 VM:s apache www 文件夹。

This post 建议取消注释 vagrant 文件中的某些行,但是当我使用 puphpet 时,我自动生成的 vagrant 文件如下所示:

# -*- mode: ruby -*-

dir = File.dirname(File.expand_path(__FILE__))

require 'yaml'
require "#{dir}/puphpet/ruby/deep_merge.rb"
require "#{dir}/puphpet/ruby/to_bool.rb"
require "#{dir}/puphpet/ruby/puppet.rb"

configValues = YAML.load_file("#{dir}/puphpet/config.yaml")

provider = ENV['VAGRANT_DEFAULT_PROVIDER'] ? ENV['VAGRANT_DEFAULT_PROVIDER'] : 'local'
if File.file?("#{dir}/puphpet/config-#{provider}.yaml")
  custom = YAML.load_file("#{dir}/puphpet/config-#{provider}.yaml")
  configValues.deep_merge!(custom)
end

if File.file?("#{dir}/puphpet/config-custom.yaml")
  custom = YAML.load_file("#{dir}/puphpet/config-custom.yaml")
  configValues.deep_merge!(custom)
end

data = configValues['vagrantfile']

Vagrant.require_version '>= 1.8.1'

Vagrant.configure('2') do |config|
  eval File.read("#{dir}/puphpet/vagrant/Vagrantfile-#{data['target']}")
end

但是没有取消注释的行。

我想也许我需要在 puphpet 的 config.yaml 中做点什么? 这是我发现的有关 ip 和端口的信息:

machines:
    vflm_azud9vpjzelv:
        id: machine1
        hostname: myserver.puphpet
        network:
            private_network: 192.168.56.101
            forwarded_port:
                vflmnfp_rkr38vlo4vcb:
                    host: '6597'
                    guest: '22'
        memory: '512'
        cpus: '1'

您有两个简单的选择:

  • Vagrant 带有 vagrant share 命令,可以为您的虚拟机打开一个可公开访问的随机 URL
  • 创建从主机到 VM 的转发端口。例如,将主机上的端口 1080 转发到 VM 中的端口 80,因此当您转到 http://localhost:1080 时,流量将转发到您的 VM。为此,您需要将 * 设置为您的 Apache 虚拟主机的别名,以便它捕获您选择的端口(在本例中为 80)的所有流量。