从本地网络使用 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)的所有流量。
我用了两个星期的 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)的所有流量。