私の質問は

私の質問は
# -*- 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"

を実行すると、そのvagrant up行を除くすべてが完璧です。問題は、Apacheをインストールしようとすると、プログラムがインストールyを完了するために書き込みを要求してコンピュータを起動しますが、インストールプロセスが中断されたというエラーが発生することです。

私の質問は

このプロセスを完全に自動化し、インストールについて「はい」と答えるにはどうすればよいですか?

編集する

私のコードに直接関連する別の質問があります。シナリオは2つのマシンで構成されています。 1つはインターネットにアクセスでき、もう1つは最初のマシンに接続されていますが、インターネット+ Webサーバーはありません。最初のコンピューターでは、WebサーバーにアクセスできるようにDNATを構成しました。
しかし、
DNATを動作させるには、最初のマシン(DNATが実行されているマシン)にこのモジュールをロードする必要がありますか? :

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

ベストアンサー1

おすすめ記事