Подтвердить что ты не робот

Как найти Vagrant IP?

Я разрабатываю автоматическое развертывание с использованием Capistrano и использую Vagrant в качестве моего тестового виртуального сервера.

Дело в том, что мне нужен IP-адрес Vagrant для "ssh в него".

Я попробовал ifconfig и получил IP-адрес, но похоже, что это не точный брандмауэр.

Может кто-нибудь помочь мне получить Vagrant IP?

4b9b3361

Ответ 1

бежать:

vagrant ssh-config > .ssh.config

а затем в 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'

Ответ 2

По умолчанию брандмауэр не имеет IP-адреса. Чтобы найти IP-адрес, вы просто назначаете IP-адрес в Vagrantfile, а затем вызываете vagrant reload

Если вам просто нужно получить доступ к бродящей машине только с хост-машины, вам понадобится настроить "частную сеть". Либо раскомментируйте соответствующую строку по умолчанию Vagrantfile, либо добавьте этот фрагмент. Если вы хотите, чтобы ваша виртуальная машина появлялась в 172.30.1.5, она была бы следующей:

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

Узнайте больше о частных сетях. https://www.vagrantup.com/docs/networking/private_network.html

Если вам нужно, чтобы брандмауэр был доступен за пределами вашей главной машины, например, для разработки против мобильного устройства, такого как iOS или Android, вам необходимо включить общедоступную сеть, в которой вы можете использовать статический IP-адрес, например 192.168.1.10, или DHCP.

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

Подробнее о настройке общедоступной сети https://www.vagrantup.com/docs/networking/public_network.html

Ответ 3

Я нахожу, что я do нуждается в IP, чтобы настроить /etc/hosts на хост-систему, чтобы указать на службы на новой виртуальной машине.

Вот грубая версия того, что я использую для извлечения IP. Пусть бродяга делает свою магию SSH и спрашивает виртуальную машину для ее адреса; настраивать для ваших нужд.

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

Я только что нашел это в Vagrant Docs. Похоже, они считают его действительным подходом:

Это автоматически назначит IP-адрес с зарезервированного адреса пространство. IP-адрес можно определить, используя брандмауэр ssh для SSH в машину и с помощью соответствующего инструмента командной строки, чтобы найти IP, например ifconfig.

Ответ 4

Для этого я разработал небольшой плагин vagrant-address. Это простой, кросс-платформенный, кросс-провайдер, и не требует скриптов.

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

Ответ 5

откройте терминал, зайдите на путь вашего Vagrantfile и напишите это

(Linux) vagrant ssh -c "имя хоста -I | cut -d '' -f2" 2>/dev/null

(OS X) vagrant ssh -c "имя хоста -I | cut -d '' -f2" 2>/dev/null | pbcopy

Команда для Linux также работает для Windows. У меня нет возможности проверить, извините.

источник: https://coderwall.com/p/etzdmq/get-vagrant-box-guest-Ip-from-host

Ответ 6

В типе терминала:

ip addr show

Ответ 7

Я сделал в VagrantFile:

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

Как вы можете видеть, я использовал функцию "% x {}" ruby.

Ответ 8

Завершение соединения, открытого с помощью vagrant ssh, покажет адрес, поэтому можно выполнить пустую или пустую команду:

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

Ответ 9

Мне нужно было знать это, чтобы сообщить пользователю, что добавить в файл хоста его хост-машины. Это работает для меня внутри бродяги, используя только 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"

Ответ 10

Потому что я еще не видел его здесь... Когда вы vagrant ssh в коробку, я понял, что на самом деле он говорит вам IP-адреса интерфейсов. Вы можете получить это там. Например.

 {~/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]:~$ 

В моем бродячем файле я назначил адрес следующим образом:

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

и, как вы можете видеть, IP address for enp0s8: 192.168.33.10

Ответ 11

Я знаю, что этот пост старый, но я хочу добавить несколько моментов к этому!

ты можешь попробовать

vagrant ssh -c "ifconfig | grep inet" hostname 

это будет легко, если вы настроите имя для ваших гостей индивидуально!