У кого-нибудь есть четкое пошаговое руководство по настройке общего сеанса tmux на Vagrant vbox, в которое мои коллеги (по локальной сети нашего офиса) могли бы работать по SSH? Статьи, которые я нашел в Интернете, похоже, только посвящены настройке этого с компьютера на компьютер (без настройки виртуальной коробки), и я не очень хорош в работе с сетью, поэтому я не смог экстраполировать решение ...
Мы все работаем на последних моделях Mac в нашем офисе, кстати.
РЕДАКТИРОВАТЬ: Чтобы уточнить, я действительно не знаю, как я должен настроить Vagrant, чтобы позволить мне SSH в него с компьютера за пределами того, на котором размещена виртуальная машина. В приведенной выше статье предлагается добавить tunnelsхост на моей физической машине, на которой запущена виртуальная машина (в дальнейшем именуемая MBP), поэтому я и сделал это. Следующее - это ProxyCommandобъявление хоста, которое, как я предположил, должно жить в MBP.
Итак, затем я пробую SSHing в MBP с гостевой машины (другой отдельной физической машины в моей сети), и это, похоже, работает ... но это только приводит меня к MBP, а не к образу Vagrant, работающему на MBP.
Я обычно регистрирую образ Vagrant на MBP через vagrant ssh(согласно документации), и я знаю, как перенаправлять порты на Vagrant VM на MBP, но мне неясно, как я мог перенаправить порты / SSH с MBP на Vagrant VM, что, я полагаю, мне понадобится, чтобы моя гостевая машина могла подключаться через SSH через MBP к моему Vagrant-образу.
В двух словах, это то, что я пытаюсь достичь. Я делаю свою работу по разработке в Vagrant VM, которая сохраняет мой MBP красивым и чистым от любого связанного с dev, а также держит мои среды разработки полностью изолированными друг от друга, но я бы хотел начать парное программирование со своими коллегами через tmux, таким образом, причина, почему я задал этот вопрос.
Я хотел бы выполнить все это, не устанавливая дополнительную учетную запись пользователя на MBP или предоставляя моим коллегам доступ к моей локальной учетной записи пользователя на MBP, чтобы получить доступ к моей Vagrant VM, если это вообще возможно.
ОБНОВЛЕНИЕ : пытался установить мостовое соединение, согласно предложению @Джона Уитли, и я до сих пор безуспешно.
У меня на сетевом образе нового сетевого адаптера установлен мост, связанный с моим интерфейсом AirPort на моем хост-компьютере:
Затем я могу vagrant sshв поле и запустить ifconfigи увидеть, что это как IP 10.0.2.151:
Но когда я открываю новый сеанс терминала на моей хост-машине и пытаюсь пропинговать этот адрес, я ничего не получаю:
Я заметил, что Vagrant docs, в разделе для мостовых сетей ( http://vagrantup.com/v1/docs/bridged_networking.html ), кажется, перечисляет мостовое устройство как eth2и имеет elipses до этого, предполагая, что может быть также быть eth1активным устройством с другим IP. У меня ifconfigна бродячей коробке нет двух отдельных адаптеров. Мне предлагается при загрузке бродячего образа:
На что я всегда отвечаю 1за свой Аэропорт, что, я полагаю, мне следует делать. Есть мысли о том, как это работает? Мой Vagrant box все еще может общаться с Интернетом, и переадресация портов все еще работает ...
Подробнее, пожалуйста. Мы не знаем, * как * это не работает для вас и даже на каком этапе вы заблокированы. Что работает? Что нет? Можете ли вы подключить SSH к одной из этих виртуальных машин? Вы говорили с отделом ИТ?
romainl 12 лет назад
1
Что ж, сеансы tmux являются общими по умолчанию, поэтому эта часть не должна создавать проблем. Просто подключитесь к нему обычно из нескольких мест.
Daniel Andersson 12 лет назад
0
@romainl Смотрите мое обновление; сделал все возможное, чтобы объяснить, что я пытался до сих пор. Опять же, SSH за рамками не моя сильная сторона ...
neezer 12 лет назад
0
3 ответа на вопрос
4
John Whitley
Самое простое, что можно сделать, это добавить сетевой интерфейс Bridged к вашей виртуальной машине Vagrant. (Не изменяйте основной сетевой интерфейс на интерфейс Bridged, согласно документам Vagrant .) Интерфейс NAT имеет доступ к внешней сети (например, чтобы виртуальная машина могла получать пакеты, репозитории git и т. Д.), Но внешняя сеть может ' т доступ к виртуальной машине. NAT-only - это настройка сети Vagrant по умолчанию. В графическом интерфейсе VirtualBox Manager это будет выглядеть так:
Интерфейс VirtualBox Bridged отображается во внешней сети точно так же, как реальный физический хост, включая получение IP-адреса от локального DHCP-сервера и получение имени домена, назначенного через DDNS, если для локальной сети он настроен для этого. Это означает, что вы можете просто проверить IP-адрес виртуальной машины (например, через vagrant ssh -c ifconfig) и напрямую подключиться к ней по ssh. Опять же, скриншот колпачка VB:
В VirtualBox Networking Docs охватывает различные «ароматы» интерфейсы, поддерживаемые средой VM, в том числе некоторые из них не рассматривается. Это довольно короткий и хорошо стоит прочитать.
Последнее волшебство - правильная настройка виртуальной машины VirtualBox. В вашем Vagrantfile вам нужно добавить такую строку:
config.vm.network :bridged
vagrant reloadнеобходимо, чтобы это изменение вступило в силу. См. Документацию по сетевым мостам Vagrant для более подробной информации об этом методе.
Я настроил свой базовый блок для использования NAT вместо Bridged из-за этого фрагмента из документов Vagrant (http://vagrantup.com/v1/docs/base_boxes.html): «Теперь это действительно важно: убедитесь, что сетевой контроллер настроен на NAT. Для правильной работы переадресации портов необходимо использовать NAT. Соединения с мостовым соединением не поддерживаются, поскольку от компьютера требуется указать, к какому устройству он подключен, а какой неизвестен. " Я просто теряю переадресацию портов на моей виртуальной машине на локальный хост, если я делаю это (и вместо этого мне нужно разрешить IP-адрес виртуальной машины в моем браузере)?
neezer 12 лет назад
0
Это замечание о NAT с Vagrant является правильным, спасибо. Я исправил и уточнил текст выше, чтобы указать, что мостовой интерфейс должен быть _добавлен_ к виртуальной машине, а не заменять NAT. Установка sshd по умолчанию будет связывать порт 22 на всех интерфейсах, так что вы все равно можете подключиться к ssh и запустить tmux через добавленный интерфейс Bridged.
John Whitley 12 лет назад
0
Эй, @john, смотри мое обновление выше; Я не смог получить эту работу, которая была разочаровывающей, так как я чувствую, что она должна быть довольно простой и понятной. Буду признателен за любую дополнительную информацию, которую вы можете дать мне!
neezer 12 лет назад
0
So I determined that this does work fine with the official vagrant boxes found here: https://github.com/mitchellh/vagrant/wiki/Available-Vagrant-Boxes. All you need to do is `config.vm.network :bridged` as you pointed out. Will have to figure out why my other custom box wasn't working... thanks.
neezer 12 лет назад
0
@neezer, as a wild guess, you might look at the sshd config on the non-working box. It might be that it's binding port 22 on only one interface? I'd log into the VM via `vagrant ssh` and poke around to see what's bound to port 22(sshd) via `sudo netstat -a -p` on the box.
John Whitley 12 лет назад
0
3
Lenilson Jose Dias
Через NAT вы можете подключиться с этим:
ssh -p 2222 vagrant@[IP address of your host machine]
Если ваш хост-компьютер находится под прокси, перенаправьте порт 2222 в Интернет.
Пользователь, который установил wemux, будет автоматически добавлен в список хостов wemux. Чтобы изменить хост или добавить больше хостов, отредактируйте /usr/local/etc/wemux.conf и добавьте имя пользователя в массив host_list.
Пользователи в host_list смогут запускать новые серверы wemux, все остальные пользователи будут клиентами wemux и присоединятся к этим серверам.