Os exemplos 'for' acima estão corretos para realizar um intervalo inclusivo. Se você deseja encaminhar um conjunto de portas específicas, é necessário usar o operador Ruby .each.
As variáveis podem ir dentro ou fora do loop principal do Vagrant.configure.
UDP_PORTS_LIST={
"5000" => 5000, # Some service
}
TCP_PORTS_LIST={
"5900" => 5900, # VNC
}
Os loops precisam ir para dentro do bloco Vagrant.configure da VM para a qual você deseja mapeá-los (lembre-se de que você pode ter várias VMs em um único arquivo Vagrant).
UDP_PORTS_LIST.each do |guest, host|
config.vm.network "forwarded_port", guest: "#{guest}", host: "#{host}", protocol: "udp"
end
TCP_PORTS_LIST.each do |guest, host|
config.vm.network "forwarded_port", guest: "#{guest}", host: "#{host}", protocol: "tcp"
end