Ich versuche, eine virtuelle Umgebung mit Virtualbox und Vagrant zu erstellen. Ziel ist es, vom PC-Browser auf eine App zugreifen zu können, die auf dem virtuellen Computer 'server' läuft und mit der virtuellen Maschine 'db' interagiert.Wie verbindet man zwei VM (postgreSQL und tomee) mit Vagrant?
Ich schaffte es, die virtuellen Maschinen zu erstellen.
Der erste ist mit Apache Tomee läuft und ich kann es über meinen Browser zugreifen. Es funktioniert korrekt.
Die zweite ist mit Postgres läuft und ich kann es über meinen Browser zugreifen. Es funktioniert auch richtig.
Wenn ich versuche, VM ‚Server‘ mit ‚db‘ Ich erhalte einen http 500-Fehler zu verbinden (nur, wenn ich mit der App einig db Betrieb versuchen), insbesondere:
"Connection to localhost:2222 refused. Check that the hostname and port
are correct and that the postmaster is accepting TCP/IP connections.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:229)"
testete ich die zwei Maschinen von PC-Browser und sie funktionieren richtig (in der Tat in db-Maschine sehe ich Objekte hinzugefügt).
Dies ist Vagrantfile:
config.vm.define "server" do |node|
node.vm.hostname = "server"
node.vm.network "private_network", ip: "10.12.1.101", virtualbox__intnet: true
[...]
node.vm.network "forwarded_port", guest: 22, host: 2211, id: 'ssh', auto_correct: true
node.vm.network "forwarded_port", guest: 8080, host: 2212
node.ssh.forward_agent = true
[...]
end
config.vm.define "client" do |node|
node.vm.hostname = "client"
node.vm.network "private_network", ip: "10.12.1.201", virtualbox__intnet: true
[...]
node.vm.network "forwarded_port", guest: 22, host: 2221, id: 'ssh', auto_correct: true
node.vm.network "forwarded_port", guest: 5432, host: 2222
end
In-Datei in Apache-tomee/conf tomee.xml präsentiere ich den gleichen Code für DB-Verbindung I in Tests verwenden angegeben
(die richtig aus virtueller Umgebung arbeitet)<tomee>
<Resource id="PostgreSQL Database" type="DataSource">
JdbcDriver org.postgresql.Driver
JdbcUrl jdbc:postgresql://localhost:2222/music
UserName postgres
Password postgres
JtaManaged true
DefaultAutoCommit false
</Resource>
</tomee>
zu db VM modifiziert i sowohl postgresql.conf und pg_hba.conf Zugabe
listen_addresses = '*'
in der ersten und der
Host alle alle 0.0.0.0/0 md5
in der zweiten. Ich verstehe nicht, warum, wenn Tomee auf meinem PC läuft, ich auf beide VM zugreifen kann, aber "Server" kann nicht mit "Db" kommunizieren.
Dies ist die Ausgabe von "sudo netstat -tulpn | grep Postgres" zu db VM
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 5743/Postgres
tcp6 0 0 ::: 5432 ::: * LISTEN 5743/postgres
Ich habe versucht, es zu tun, aber der Fehler ist es mehr oder weniger das gleiche. (wenn Sie sich auf die Datei tomee.xml beziehen). > "Verbindung zum 10.12.1.201:2222 abgelehnt. Überprüfen Sie, ob der Hostname und Port – TrinitasXVII
Wenn Sie direkt mit dem Gast verbinden, verwenden Sie den echten Port; der weitergeleitete Port ist für die Verbindung mit dem * Host * (der Computer, auf dem virtualboxes) –
ES FUNKTIONIERT! Danke: D – TrinitasXVII