Я использую приведенный ниже код Vagrant для получения IP-адреса.Я использую DHCP для использования частной сети и позволяю назначать IP-адрес через DHCP.
# Vagrantfile
Vagrant.configure(2) do |config|
config.ssh.insert_key = true
config.ssh.username = "vagrant"
config.vm.network "private_network", type: "dhcp"
config.vm.box = "ubuntu/trusty64"
config.vm.define "test-web"
config.trigger.after :up, :stdout => false, :stderr => false do
get_ip_address = %Q(vagrant ssh #{@machine.name} -c 'ifconfig | grep -oP "inet addr:\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" | grep -oP "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" | tail -n 2 | head -n 1')
@logger.debug "Running `#{get_ip_address}`"
output = `#{get_ip_address}`
@logger.debug "Output received:\n----\n#{output}\n----"
puts "==> #{@machine.name}: Available on DHCP IP address #{output.strip}"
@logger.debug "Finished running :after trigger"
end
end
Когда я проверяю код, появляется ли ошибка ниже?Похоже, проблема с @ machine.name.
vagrant validate
Vagrant failed to initialize at a very early stage:
There was an error loading a Vagrantfile. The file being loaded
and the error message are shown below. This is usually caused by
an invalid or undefined variable.
Path: /Users/Vagrantfile
Line number: 0
Message: undefined method `name'