2016-04-01 7 views
1

Ich benutze vagrant/VirtualBox auf meinem Windows (8.1) Laptop, um einen Linux-Test-vm von einem Cygwin Terminal zu starten ... vagrant up, vagrant ssh, alles funktioniert gut.cygwin/sshd und Virtualbox

Nun möchte ich diese Umgebung remote von meiner Linux-Workstation bearbeiten, also habe ich in Cygwin sshd eingerichtet und kann ssh erfolgreich in meine Windows-Box (derselbe Benutzer wie lokal in Windows eingeloggt).

Aber wenn ich cd ‚ed (über meine Remote-SSH-Verbindung zum Windows-Laptop) in meinem Arbeitsverzeichnis und lief vagrant ssh, es sagt mir:

VM must be created before running this command. Run 'vagrant up' first

Aber ich sehe die VM läuft in VirtualBox GUI unter Windows.

Von diesem Punkt an kann ich auch lokal auf der Windows-Maschine nicht mehr mit dem laufenden Vagrant vm interagieren und das .vagrant (Sub-) Verzeichnis hat keine Dateien im Inneren.


Gleiche geschieht umgekehrt:

  • Ich stoppte/die VM in VirtualBox GUI
  • lief vagrant up über meine SSH-Verbindung ... arbeitete
  • lief vagrant ssh über meine SSH-Verbindung gelöscht. .. funktioniert
  • aber ich sehe nicht die VM in VirtualBox GUI unter Windows
  • versuchen vagrant ssh lokal auf Windows ... gleiche Fehler wieder und .vagrant Verzeichnis

Also gehe ich davon aus dem Cygwin/sshd Verbindung schafft eine Art von verschiedenen Sessions, die nicht die gleiche „Instanz“ teilen von VirtualBox gelöscht wird.

Gibt es eine Chance, VirtualBox/Vagrant-Umgebung zwischen dem lokalen Windows und Remote-SSH-Sitzung zu teilen?

Abhilfe:

  • Export ssh-config auf dem Host-Fenster: vagrant ssh-config > ssh_config
  • aus dem Cygwin/ssh Sprung in die VM: ssh -F ssh_config default
  • nie Lauf jeder vagrant Befehl von der cygwin/ssh Verbindung

Antwort

0

Vagra Seit den 1.7.x-Versionen vagrant share gibt es eine integrierte Lösung, mit der Sie auch direkt in eine Box einsteigen können (unter Umgehung der Windows-Host-Abstraktion). Es wird im Allgemeinen für die HTTP-Funktion verwendet (z. B. um Clients oder anderen Personen in einem Projekt den aktuellen Arbeitsstatus anzuzeigen), aber es besteht die Möglichkeit, eine Verbindung zu einem beliebigen Dienst herzustellen, der an einem beliebigen Port ausgeführt wird. Von the docs:

Rufen Sie einfach vagrant share.Dies teilt automatisch so viele Ports wie möglich für Remote-Verbindungen. Wenn die Vagrant-Umgebung eine statische IP- oder DNS-Adresse hat, ist jeder Port verfügbar. Andernfalls stellt Vagrant nur weitergeleitete Ports auf dem Computer zur Verfügung.

Notieren Sie den Freigabenamen am Ende des Aufrufs vagrant share, und geben Sie diese an die Person, die eine Verbindung zu Ihrem Computer herstellen möchte. Sie haben einfach , vagrant connect NAME zu rufen. Dies gibt ihnen eine statische IP, die sie verwenden können, um auf Ihre Vagrant-Umgebung zuzugreifen.

Hinweis zu verwenden vagrant share Sie benötigen ein (kostenloses) Konto mit Hashicorp.