Раскрутите несколько ящиков Vagrant и SSH в них
У меня есть 3 бродячих коробки
vagrant box list
hashicorp/precise32 (virtualbox, 1.0.0)
hashicorp/precise64 (vmware_fusion, 1.1.0)
laravel/homestead (virtualbox, 0.4.2)
когда я делаю vagrant up
, а также vagrant ssh
Я продолжал входить в hashicorp/precise32
машина.
Как мне раскрутить эти 3 коробки одновременно?
Как мне SSH в каждом из них?
3 ответа
бродячий до
раскрутит все бродячие ящики, которые вы перечислили в своем бродячем файле.
Тогда просто ssh
в них - один за другим.
Вы можете включить все три машины в один и тот же vagrantfile и выполнить один vagrant внутри каталога, который вызовет все машины. Вот пример виртуальной коробки, вам, возможно, придется отредактировать это и добавить блок провайдера vmware, чтобы добавить свой компьютер laravel.
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = '2'
# declare the machine config in a hash
HOST_CONFIG = {
'ubuntu_32' => 'hashicorp/precise32',
'ubuntu_64' => 'hashicorp/previse64',
'laravel' => 'laravel/homestead'
}
# create the vms
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
HOST_CONFIG.each do |hostname, basebox|
config.vm.define hostname do |hname|
hname.vm.box = basebox
hname.vm.provider 'virtualbox' do |v|
v.name = hostname
end
end
end
end
После того, как машины работают, внутри одного и того же каталога вы можете использовать имена блоков, которые вы указали в хэше, для ssh в каждом блоке.
пример:
vagrant ssh ubuntu_32
перенесет вас в окно hashicorp/ точный32.
Важная часть в vagrantfile, которая позволяет вам использовать имя
config.vm.define hostname do |hname|
блок ниже прикрепляет имя к машине внутри virtualbox
hname.vm.provider 'virtualbox' do |v|
v.name = hostname
end
Это присвоит данное имя подключенному компьютеру (vm). Чтобы заставить машину vmware получить имя, вам, вероятно, придется обернуть это внутри if-else
if hostname == 'ubuntu_64'
hname.vm.provider 'vmware_fusion' do |v|
v.name = hostname
end
else
hname.vm.provider 'virtualbox' do |v|
v.name = hostname
end
end
Сначала вы должны создать среды Vagrant для каждого из блоков в папке с тремя проектами:
vagrant init hashicorp/precise32
vagrant init hashicorp/previse64
vagrant init laravel/homestead
Теперь вы можете использовать vagrant up и vagrant ssh в папке проектов. Команда vagrant global-status покажет вам статус вашей машины.