it-swarm.com.de

Wie finde ich die Vagrant IP?

Ich habe eine automatisierte Bereitstellung mit Capistrano entwickelt und Vagrant als virtuellen Testserver verwendet.

Die Sache ist, ich brauche die IP von Vagrant, um "ssh hinein".

Ich habe ifconfig ausprobiert und die IP bekommen, aber es sieht so aus, als ob es nicht die genaue Vagrant-IP ist.

Kann mir jemand helfen, die Vagrant IP zu bekommen?

35
Linda

lauf:

vagrant ssh-config > .ssh.config

und dann in config/deploy.rb

role :web, "default"     
role :app, "default"
set :use_Sudo, true
set :user, 'root'
set :run_method, :Sudo

# Must be set for the password Prompt from git to work
default_run_options[:pty] = true
ssh_options[:forward_agent] = true
ssh_options[:config] = '.ssh.config'
19
mpapis

Standardmäßig hat eine Vagrant-Box keine IP-Adresse. Um die IP-Adresse zu finden, weisen Sie einfach die IP-Adresse in Ihrer Vagrantfile zu und rufen Sie vagrant reload an.

Wenn Sie nur von einem Host-Rechner aus auf einen Vagrant-Computer zugreifen müssen, müssen Sie nur ein "privates Netzwerk" einrichten. Entfernen Sie in der Standardvariable__ die Variable Vagrantfile, oder fügen Sie dieses Snippet hinzu. Wenn Sie möchten, dass Ihre VM unter 172.30.1.5 angezeigt wird, wäre dies Folgendes:

config.vm.network "private_network", ip: "172.30.1.5"

Erfahren Sie mehr über private Netzwerke. https://www.vagrantup.com/docs/networking/private_network.html

Wenn Sie auf Vagrant außerhalb Ihres Host-Computers zugreifen möchten, beispielsweise für die Entwicklung gegen ein mobiles Gerät wie iOS oder Android, müssen Sie ein öffentliches Netzwerk aktivieren. Sie können entweder eine statische IP-Adresse verwenden, beispielsweise 192.168.1.10 oder DHCP. 

config.vm.network "public_network", ip: "192.168.1.10"

Weitere Informationen zum Konfigurieren eines öffentlichen Netzwerks https://www.vagrantup.com/docs/networking/public_network.html

34
gtzilla

Ich finde, dass do die IP benötigt, um /etc/hosts auf dem Host-System so zu konfigurieren, dass auf Dienste auf der neuen VM verwiesen wird.

Hier ist eine grobe Version dessen, was ich zum Abrufen der IP-Adresse verwende. Lassen Sie Vagrant seine SSH-Magie durchführen und fragen Sie den VM nach seiner Adresse. Tweak für Ihre Bedürfnisse.

new_ip=$(vagrant ssh -c "ip address show eth0 | grep 'inet ' | sed -e 's/^.*inet //' -e 's/\/.*$//'")

Ich habe das gerade in den Vagrant Docs gefunden. Sieht aus wie sie es für einen gültigen Ansatz halten:

Dadurch wird automatisch eine IP-Adresse von der reservierten Adresse .__ zugewiesen. Platz. Die IP-Adresse kann mithilfe von vagrant ssh bis SSH ermittelt werden in die Maschine und verwenden Sie das entsprechende Befehlszeilentool zum Suchen von die IP, z. B. ifconfig.

33
quickshiftin

Ich habe dafür ein kleines vagrant-address Plugin entwickelt. Es ist einfach, plattformübergreifend, anbieterübergreifend und erfordert kein Scripting.

https://github.com/mkuzmin/vagrant-address

14
mkuzmin

Öffnen Sie das Terminal, kommen Sie zum Pfad Ihrer Vagrantfile und schreiben Sie dies

(Linux) Vagrant ssh -c "Hostname -I | cut -d '' -f2" 2>/dev/null

(OS X) Vagrant ssh -c "Hostname -I | cut -d '' -f2" 2>/dev/null | pbcopy

Der Befehl für Linux funktioniert auch für Windows. Ich habe keine Möglichkeit zu testen, sorry.

source: https://coderwall.com/p/etzdmq/get-vagrant-box-guest-ip-from-Host

12
IuriMattos

Im Terminaltyp: 

ip addr show
8
Gabriel Comeau

Ich habe bei VagrantFile gemacht:

REMOTE_IP = %x{/usr/local/bin/vagrant ssh-config | /bin/grep -i HostName | /usr/bin/cut -d\' \' -f4}
run "ping #{REMOTE_IP}"

Wie Sie sehen, habe ich die Ruby-Funktion "% x {}" verwendet.

5
bsouza

Eine offene Verbindung beenden mit vagrant ssh zeigt die Adresse an, so dass ein Dummy- oder leerer Befehl ausgeführt werden kann:

$ vagrant ssh -c ''
Connection to 192.168.121.155 closed.

Ich musste dies wissen, um einem Benutzer mitzuteilen, was er der Host-Datei seines Host-Computers hinzufügen soll .. Das funktioniert für mich in vagrant nur mit bash:

external_ip=$(cat /vagrant/config.yml | grep vagrant_ip | cut -d' ' -f2 | xargs)
echo -e "# Add this line to your Host file:\n${external_ip}     Host.vagrant.vm"
0
Martin Francis

Weil ich es hier noch nicht gesehen habe ... Wenn du vagrant ssh in die Box, ich habe festgestellt, es sagt Ihnen tatsächlich die IP-Adressen der Schnittstellen. Sie können es dort bekommen. Zum Beispiel.

 {~/Documents/jupyterhub-ansible} (features *%)$  vagrant ssh
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-50-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Wed May 22 12:00:34 UTC 2019

  System load:  0.12              Processes:             101
  Usage of /:   56.5% of 9.63GB   Users logged in:       0
  Memory usage: 19%               IP address for enp0s3: 10.0.2.15
  Swap usage:   0%                IP address for enp0s8: 192.168.33.10


10 packages can be updated.
1 update is a security update.


Last login: Wed May 22 12:00:04 2019 from 192.168.33.1
[email protected]:~$ 

In meiner Vagabunddatei habe ich die Adresse folgendermaßen vergeben:

config.vm.network "private_network", ip: "192.168.33.10"

und wie Sie sehen können, IP address for enp0s8: 192.168.33.10

0
Nick Brady