O Vagrant é ótimo para nós, desenvolvedores, porque nos permite testar e executar nosso software em um ambiente virtual e, ao mesmo tempo, manter nossas máquinas reais sem bancos de dados, bibliotecas e linguagens de programação em diferentes sabores e versões.
Mas e se quisermos usar o Vagrant para rodar um software que precisa de uma GUI?
Graças ao X forwarding , podemos encaminhar a saída de programas gráficos usando o X11 para nossa máquina host.
Nota : se você estiver no OSX, você precisa instalar o XQuartz primeiro.
Permitir o X-Forwarding em seu Vagrantfile
Para usar o X-Forwarding, primeiro você precisa permiti-lo de dentro do seu Vagrantfile, assim:
Vagrant.configure(2) do |config|
...
config.ssh.forward_x11 = true
end
Execute um programa GUI dentro da caixa do Vagrant:
Agora, em seu host, execute isto:
$ vagrant ssh-config
Host some_site
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL
ForwardX11 yes
então agora podemos usar a porta 2222 para se conectar à máquina e executar um programa que requer X11:
$ vagrant ssh
vagrant@vagrant: $ sudo apt-get install xclock
vagrant@vagrant: $ exit
$ ssh -X -p 2222 vagrant@localhost xclock
que deve começar a ser xclock
exibido em nossa máquina host.