Как ssh между кластером гостевых виртуальных машин Vagrant

7

У меня есть 3 виртуальные машины Ubuntu 12.04, настроенные с помощью мостовых сетей и настройки с помощью Vagrant. Я могу получить доступ ко всем из них с хоста, используя "vagrant ssh", но я не могу понять, как я подключаюсь от одной гостевой виртуальной машины к другой.

IanSR
источник

Ответы:

5

В Vagrantfile дайте каждой машине статический частный адрес.

Vagrant.configure(2) do |config|
    config.vm.define "master" do |master|    
        master.vm.box = "ubuntu/trusty64"
        # You may wish to use a more obscure private ip, like 10.2.2.4
        master.vm.network "private_network", ip: "10.0.0.200"
    end
    config.vm.define "slave" do |slave|    
        slave.vm.box = "ubuntu/trusty64"
        # You may wish to use a more obscure private ip, like 10.2.2.5
        slave.vm.network "private_network", ip: "10.0.0.201"
    end
End

На обеих машинах вы можете сначала загрузить ssh в одну по имени

vagrant ssh master

И из этого сеанса вы можете ssh на другую машину через частную сеть ip:

ssh 10.0.0.201

При запросе имени пользователя / пароля вы можете пройти аутентификацию как vagrant / vagrantили дополнительно настройте ssh для себя.


Эта информация была адаптирована из следующего поста [1] :

  1. Бродячий кластер виртуальных машин Джесси - jessesnet 2014-04-22. Получено 2015-02-26
ThorSummoner
источник
1

Если вы установили их с мостовым интерфейсом, это означает, что все они принадлежат вашей стандартной локальной сети. Таким образом, вы можете легко получить доступ к виртуальной машине с другой виртуальной машины, выполнив

 ssh myname@ip_of_vm_2

Вы можете найти IP-адреса своих машин либо непосредственно внутри каждой машины, либо с помощью стандартного инструмента, такого как nmapили запросив у маршрутизатора список клиентов DHCP. Наконец, если вы знаете их IP-адреса, но не их имена BIOS, вы можете использовать nmbd, чтобы связать имя с IP-адресом:

 nmblookup -A IP_address

Между прочим, эта простота доступа (которая устанавливает ваши виртуальные машины на одну ногу с вашими локальными сетями) является одной из причин, почему я всегда использую мостовой интерфейс.

MariusMatutiae
источник
Благодарю. Я думаю, что осложнение связано с тем, что я пытаюсь соединиться, используя мой беспроводной интерфейс, и адаптеры Wi-Fi (как правило, всегда?) Не могут быть переведены в случайный режим, чтобы собирать пакеты для других адресов. Это возможная причина, по которой это не работает?
IanSR
Нет, не правда. Мостовая конфигурация на wlan0 работает отлично, я только что попробовал это с VirtualBox, у меня три виртуальные машины все отлично связаны.
MariusMatutiae
0

Я только что исправил это в сложной настройке Cent Vagrant с несколькими ОС CentOS (BoxCutter 6.9). Существует два уровня этой проблемы, моя проблема была 2:

  1. Правильно настройте конфигурацию Vagrant, чтобы у вас была «private_network», а IP-адреса всех ваших виртуальных машин находятся в одной подсети (статической или DHCP): https://www.vagrantup.com/docs/networking/private_network.html

  2. При ssh'ing между VM, если вы получаете эту ошибку: [root@vm01 ~]# ssh root@vm02 Permission denied (publickey,gssapi-keyex,gssapi-with-mic). Сообщение об ошибке означает, что ни один из методов аутентификации не смог аутентифицировать ваш сеанс, и нет упоминания опции пароля, поэтому аутентификация по паролю, вероятно, была отключена. Исправить правку /etc/ssh/sshd_config и проверьте, что у вас есть PasswordAuthentication yes и это не закомментировано ( # ), затем перезагрузите sshd если необходимо: service sshd restart (это не отсоединит никаких сессий, потому что это умно).

Oliver Dungey
источник