我的问题是

我的问题是
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  config.vm.define :nodo1 do |nodo1|
    nodo1.vm.box = "debian/buster64"
    nodo1.vm.hostname = "nodo1"
    nodo1.vm.network :public_network,:bridge=>"wlp3s0"
    nodo1.vm.network :private_network, ip: "10.1.1.101"
    nodo1.vm.provision "shell", inline: "sudo ip route del default",
     run: "always"
    nodo1.vm.provision "shell", inline: "sudo ip route add default via 192.168.1.1",
     run: "always"
    nodo1.vm.provision "shell", inline: "sudo sysctl -w net.ipv4.ip_forward=1",
     run: "always"
    nodo1.vm.provision "shell", inline: "sudo modprobe ip_tables",
     run: "always"
    nodo1.vm.provision "shell", inline: "iptables -t nat -A PREROUTING -p tcp -d 192.168.1.114 --dport 8080 -j DNAT --to-destination 10.1.1.102:80",
     run: "always"
  end
  config.vm.define :nodo2 do |nodo2|
    nodo2.vm.box = "debian/buster64"
    nodo2.vm.hostname = "nodo2"
    nodo2.vm.network :private_network, ip: "10.1.1.102"
    nodo2.vm.provision "shell", inline: "sudo apt update",
     run: "always"
    nodo2.vm.provision "shell", inline: "sudo apt install apache2",
     run: "always"
  end
end

这些是我的 Vagrantfile 的内容。但整个代码对于我的问题并不重要(我只是想让你看到整个代码,这样可能会对你有所帮助),只是这些代码行:

nodo2.vm.provision "shell", inline: "sudo apt update",
 run: "always"
nodo2.vm.provision "shell", inline: "sudo apt install apache2",
 run: "always"

如果我执行 a vagrant up,除了那些行之外,一切都完美。问题是,当它尝试安装 apache 时,程序会要求您写入y来完成安装,并且它会启动计算机,但会出现错误,提示安装过程已中止。

我的问题是

我怎样才能使这个过程完全自动化并回答“是”安装?

编辑

我还有另一个与我的代码直接相关的问题。该场景由 2 台机器组成,其中一台可以访问互联网,另一台连接到第一台机器,但没有互联网 + Web 服务器。在第一台机器中,我配置 DNAT,以便可以访问 Web 服务器。

是否有必要在第一台机器(执行 DNAT 的机器)上加载此模块才能使 DNAT 工作?:

nodo1.vm.provision "shell", inline: "sudo modprobe ip_tables",
 run: "always"

相关内容