2

У кого-нибудь есть четкое пошаговое руководство по настройке общего сеанса tmux на Vagrant vbox, в которое мои коллеги (по локальной сети нашего офиса) могли бы работать по SSH? Статьи, которые я нашел в Интернете, похоже, только посвящены настройке этого с компьютера на компьютер (без настройки виртуальной коробки), и я не очень хорош в работе с сетями, поэтому я не смог экстраполировать решение ...

Мы все работаем на последних моделях Mac в нашем офисе, кстати.

Вот одна статья, которую я нашел, но не смог поработать с Vagrant: http://blog.voxdolo.me/remote-pairing-with-vim-and-tmux.html

РЕДАКТИРОВАТЬ: Чтобы уточнить, я действительно не знаю, как я должен настроить Vagrant, чтобы позволить мне SSH в него с компьютера за пределами того, на котором размещена виртуальная машина. В приведенной выше статье предлагается добавить хост tunnels на моей физической машине, на которой запущена виртуальная машина (здесь и далее именуемая MBP), поэтому я сделал это. Далее следует объявление хоста ProxyCommand , которое, как я предполагал, должно также находиться на MBP.

Итак, затем я пробую SSHing в MBP с гостевой машины (другой отдельной физической машины в моей сети), и это, похоже, работает ... но это только приводит меня к MBP, а не к образу Vagrant, запущенному на MBP.

Я обычно регистрирую образ Vagrant на MBP через vagrant ssh (согласно документации), и я знаю, как перенаправлять порты на виртуальной машине Vagrant на MBP, но мне неясно, как я мог перенаправить порты /SSH с MBP на Vagrant VM, что, как я полагаю, потребуется, чтобы моя гостевая машина могла подключаться по SSH через MBP к моему Vagrant-образу.

В двух словах, это то, что я пытаюсь достичь. Я делаю свою работу по разработке в Vagrant VM, которая сохраняет мой MBP красивым и чистым от любого связанного с dev, а также держит мои среды разработки полностью изолированными друг от друга, но я бы хотел начать парное программирование со своими коллегами через tmux, таким образом, причина, почему я задал этот вопрос.

Я хотел бы выполнить все это, не устанавливая дополнительную учетную запись пользователя на MBP или предоставляя моим коллегам доступ к моей локальной учетной записи пользователя на MBP, чтобы получить доступ к моей Vagrant VM, если это вообще возможно.


ОБНОВЛЕНИЕ: пытался установить мостовое соединение, согласно предложению @Джона Уитли, и я пока не добился успеха.

У меня на сетевом образе нового сетевого адаптера установлен мост, связанный с моим интерфейсом AirPort на моем хост-компьютере:

vbox manager

Затем я могу зайти в окно vagrant ssh и запустить ifconfig и увидеть, что это IP-адрес 10.0.2.151:

ifconfig on vagrant box

Но когда я открываю новый сеанс терминала на моей хост-машине и пытаюсь пропинговать этот адрес, я ничего не получаю:

пинг

Я заметил, что Vagrant docs, в разделе для мостовых сетей (http://vagrantup.com/v1/docs/bridged_networking.html), кажется, перечисляет мостовое устройство как eth2 и имеет elipses до этого, предполагая, что может быть также быть активным устройством eth1 с другим IP. Мой ifconfig на бродячей коробке не имеет двух отдельных адаптеров. Мне предлагается при загрузке бродячего образа:

запрос на сетевой мостовой интерфейс

На что я всегда отвечаю 1 за свой Аэропорт, что, я полагаю, мне следует делать. Есть мысли о том, как это работает? Мой Vagrant box все еще может общаться с Интернетом, и переадресация портов все еще работает ...

3 ответа3

4

Самое простое, что нужно сделать, это добавить сетевой интерфейс Bridged к вашей Vagrant VM. (Не меняйте основной сетевой интерфейс на Bridged, согласно документам Vagrant.) Интерфейс NAT имеет доступ к внешней сети (например, чтобы виртуальная машина могла получать пакеты, git-репозитории и т.д.), Но внешняя сеть не может получить доступ к виртуальной машине. NAT-only - это настройка сети Vagrant по умолчанию. В графическом интерфейсе VirtualBox Manager это будет выглядеть так:

Интерфейс NAT в графическом интерфейсе VirtualBox

Интерфейс VirtualBox Bridged отображается во внешней сети точно так же, как реальный физический хост, включая получение IP-адреса от локального DHCP-сервера и получение имени домена, назначенного через DDNS, если для локальной сети он настроен для этого. Это означает, что вы можете просто проверить IP-адрес виртуальной машины (например, через vagrant ssh -c ifconfig) и напрямую войти в нее по ssh. Опять же, скриншот колпачка VB:

Мостовой интерфейс в VirtualBox GUI

Сетевые документы VirtualBox охватывают различные "разновидности" интерфейсов, поддерживаемых средой виртуальных машин, включая некоторые, которые здесь не рассматриваются. Это довольно короткий и хорошо стоит прочитать.

Последнее волшебство - правильная настройка виртуальной машины VirtualBox. В вашем Vagrantfile вам нужно добавить такую строку:

config.vm.network :bridged

после этого изменения требуется vagrant reload , чтобы оно вступило в силу. См. Документацию по сетевым мостам Vagrant для более подробной информации об этом методе.

3

Через NAT вы можете подключиться с этим:

ssh -p 2222 vagrant@[IP address of your host machine]

Если ваш хост-компьютер находится под прокси, перенаправьте порт 2222 в Интернет.

0

Любой, у кого есть эта проблема, может захотеть рассмотреть wemux: https://github.com/zolrath/wemux

Из README:

Если у вас установлен Homebrew, вы можете установить wemux довольно просто:

brew install https://github.com/downloads/zolrath/wemux/wemux.rb

Пользователь, который установил wemux, будет автоматически добавлен в список хостов wemux. Чтобы изменить хост или добавить больше хостов, отредактируйте /usr/local/etc/wemux.conf и добавьте имя пользователя в массив host_list.

Пользователи в host_list смогут запускать новые серверы wemux, все остальные пользователи будут клиентами wemux и присоединятся к этим серверам.

$ vim /usr/local/etc/wemux.conf

ИЛИ ЖЕ

$ wemux conf

host_list=(zolrath brocksamson)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .