Ambiente de Desenvolvimento com o Vagrant

182 views
Skip to first unread message

Camilo Carromeu

unread,
Jul 7, 2014, 7:52:41 PM7/7/14
to titan-f...@googlegroups.com
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:

C:\> vagrant box add TitanBox 'http://titan.cnpgc.embrapa.br/Titan.box'

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:

C:\diretorio\de\projetos\projeto> svn export https://svn.cnpgc.embrapa.br/titan/instance app

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

Rodrigo Sanches Devigo

unread,
Jul 9, 2014, 4:47:40 PM7/9/14
to titan-f...@googlegroups.com
Olá Camilo,
Uma ideia boa seria também além do box também para ajudar publicidade do Titan seria legal também adicionar o CORE do titan no projeto composer.
Assim seria ótimo projetos open com o Titan já vir com um json.

Att.


--
Você recebeu essa mensagem porque está inscrito no grupo quot;Titan Framework" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para titan-framewo...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Rodrigo Sanches Devigo
Graduando em Bacharelado em Ciência da Computação - UFMS
Desenvolvedor do Laboratório de Engenharia de Software

Rodrigo Sanches Devigo

unread,
Jul 9, 2014, 4:47:54 PM7/9/14
to titan-f...@googlegroups.com
Uma ideia apenas.

Att.

Camilo Carromeu

unread,
Jul 10, 2014, 2:44:47 PM7/10/14
to titan-f...@googlegroups.com
Olá Devigo,

É uma ótima sugestão! O problema é ter perna para implementar todas as melhorias no framework. O Vagrant será ótimo para simplificar a vida de quem está começando (aprendendo) a desenvolver aplicações com o Titan, então priorizei.

Vou discutir depois pessoalmente com você esta ideia.

Abraços,

Camilo

Camilo Carromeu

unread,
Jan 7, 2016, 2:07:00 PM1/7/16
to Titan Framework
Olá pessoal,

Apenas para avisar, a base-box do Titan foi atualizada para o Debian Jessie. Com isso foi atualizado o ambiente de desenvolvimento instanciado por meio do Vagrant: o PHP agora é o 5.6 (antes era o 5.4) e o PostgreSQL é o 9.4 (antes era o 9.1).

Para utilizar a nova box vocês deverão destruir os ambientes atuais...

vagrant destroy (dentro da pasta 'box' de cada instância do Titan)

...remover a box anterior do Vagrant...

vagrant box remove TitanBox

...e recriar os ambientes...

vagrant up (dentro da pasta 'box' de cada instância do Titan)

O primeiro ambiente que for levantado irá fazer download da nova box.

Lembrem-se de fazer backup dos DBs de cada uma das instâncias caso haja alguma alteração.

Quem quiser também pode manter a box antiga e a nova, importando esta última como TitanBox2, por exemplo. Mas pra isso é necessário entender um pouquinho do Vagrant.

Abraços,

Camilo

Roní A. Valençoela

unread,
Jan 8, 2016, 10:44:34 AM1/8/16
to Titan Framework
Camilo,

Mudou alguma configuração para acessar o BD pelo PgAdminIII? não estou conseguindo conectar...

Camilo Carromeu

unread,
Jan 8, 2016, 10:45:43 AM1/8/16
to Titan Framework
Roni, eu havia esquecido de uma entrada no pg_hba... já corrigi... remova a box e a adicione novamente.

Abraços,

Camilo

--
Você recebeu essa mensagem porque está inscrito no grupo "Titan Framework" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para titan-framewo...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--

Fernando Maia da Mota

unread,
Feb 7, 2016, 3:17:35 PM2/7/16
to titan-f...@googlegroups.com
Olá pessoal,

Gostaria de fazer uma observação neste tópico.

No meu ambiente (OSX El Capitan 10.11.1), precisei adicionar parâmetros para usuário e grupo donos da pasta app no arquivo Vagrantfile, pois o apache estava sem permissão de escrita na pasta, portanto ficou da seguinte forma:

config.vm.synced_folder "../app", "/var/www/app", owner: "www-data", group: "www-data"

Att. 
Reply all
Reply to author
Forward
0 new messages