Pessoal,
Criamos no PLEASE Lab uma base-box do Titan para Vagrant de forma a padronizar o ambiente de desenvolvimento de novas instâncias.
Para utilizar, basta baixar e instalar o VirtualBox e o VirtualBox Extension Pack:
Em seguida, baixar e instalar o Vagrant:
Feito isso, a base-box para o Titan pode ser carregada em seu sistema para ser utilizada nos diversos projetos implementados com o framework. Basta abrir o command (cmd.exe) e dar o comando:
A box têm quase 1GB, então pode demorar um pouco. Outra forma de carregar a box é fazendo o download pelo seu gerenciador preferido e passar, no último parâmetro, o caminho para o arquivo 'Titan.box' em seu sistema de arquivos.
Uma vez carregada, podem ser criadas inúmeras VMs a partir dela. Para isto, envio em anexo a este e-mail um 'Vagrantfile' padrão. Este arquivo é necessário para configurar o ambiente a ser criado.
O arquivo 'Vagrantfile' que envio em anexo espera a seguinte estrutura de arquivos no seu projeto:
projeto/
|- app/
|- box/
|- db/
Uma vez criada esta estrutura, o 'Vagrantfile' deve ser colocado na pasta 'box'. Pode-se alterá-lo e commitar para que fique disponível para todos os desenvolvedores.
Por padrão, o arquivo enviado irá mapear as seguintes portas:
- A porta 80 (Apache) da guest para a 8090 do host;
- A porta 5432 (PostgreSQL) da guest para a 5431 do host; e
- A porta 22 (SSH) da guest para a 2222 do host.
E irá mapear os seguintes diretórios:
- O diretório 'box' do projeto será mapeado para o diretório '/vagrant' da VM;
- O diretório 'app' do projeto será mapeado para o diretório '/var/www/app' da VM; e
- O diretório 'db' do projeto será mapeado para o diretório '/var/lib/postgresql/db' da VM.
A VM possui todos os recursos recomendados para o Titan já instalados e já têm o CORE embutido. Neste caso o CORE está na pasta "/var/www/titan".
Após colocar o 'Vagrantfile' na pasta 'box', abra novamente seu command e vá até este diretório. Em seguida, dê o comando:
C:\diretorio\de\projetos\projeto\box> vagrant up
A VM irá iniciar em background. Ao término, ela ficará acessível por SSH. Como a porta está mapeada para o host, basta abrir seu cliente SSH e conectar em "localhost" ou "127.0.0.1" na porta "2222". Os usuários disponíveis são:
- login "root" com senha "vagrant"; e
- login "vagrant" com senha "vagrant".
Caso tenha um cliente SSH de linha de comando instalado e acessível pelo path, outra forma de acessar o shell da VM é simplesmente executar o seguinte comando:
C:\diretorio\de\projetos\projeto\box> vagrant ssh
Pronto, todos os arquivos colocados na pasta "app" do seu projeto serão sincronizados na VM e estarão disponíveis pelo navegador em "
http://localhost/8090". A mesma lógica é aplicada ao PostgreSQL ("
localhost" na porta "
5431").
Por exemplo, para colocar os arquivos-base de uma instância no ambiente:
O banco da instância pode ser colocado na pasta "db" do projeto. Para inserí-lo no ambiente:
C:\diretorio\de\projetos\projeto\box> vagrant ssh
$ sudo su - postgres
$ createdb -E utf8 -O titan nome-do-db
$ psql -d nome-do-db -U titan < db\db.sql
A TitanBox ainda está em versão alpha, e deve evoluir bastante. Fiquem atentos à lista para atualizarem seu ambientes e colaborem reportando erros e enviando sugestões.
Abraços,
Camilo