Vagrant para ambiente de dev

Há alguns dias, perdi um bom tempo tendo que acertar algumas configurações para um servidor WAMP. Sim, isso me irritou, pois como rodar um Apache no Ubuntu é mais fácil eu demorei para achar como configurar. Ai eu tinha que configurar um LAMP e depois um WAMP, isso me deixou um pouco irritado, pois eu fiquei pensando, deveria ter algo melhor para fazer isso.

Mas tudo isso é apenas algo trabalhoso que pode ser feito, não chega a ser um grande problema, agora, imagine que a sua aplicação usa PHP, MySQL, Memcached, Redis, MongoDB e para terminar a festa, uma API RestFul feita em Java rodando no Apache Tomcat. Isso para um projeto, agora pense nos inúmeros ambientes que podemos precisar em uma mesma máquina, instalando tudo isso estaríamos sobrecarregando essa máquina, deixando até as tarefas mais simples como responder um e-mail complicadas de serem executadas pela demora na resposta da máquina.
Agora, você poderia ir desativando e ativando os serviços conforme necessário, porem isso também seria trabalhoso. É nesse ponto que entra o Vagrant. Nele podemos subir uma interface mais próxima ao nosso servidor e habilitar e desabilitar ele com apenas um comando. Como nem tudo na vida é fácil, ainda vamos precisar configurar o ambiente, porem isso sera feito apenas uma vez.

Site Vagrant

Vamos agora ao que interessa 🙂

Para o Vagrant funcionar, precisamos ter um gerenciador de máquinas virtuais, o Vagrant suporta VirtualBox, VMware e Hiper-V. Para nosso teste vamos utilizar a VirtualBox, ela pode ser baixada aqui.

Vamos precisar também baixar o Vagrant Aqui.

Depois dele instalado precisamos iniciar o Vagrant em alguma pasta, da mesma forma que fazemos para o git.

vagrant init

Esse comando vai criar o Vagrantfile, esse arquivo sera usado mais a frente para fazer algumas configurações.

O Vagrant, funciona com “boxes”, que são as VMs. No site vagrantbox.es você pode baixar a box que quiser. Eu escolhi a precise32 para demonstrar.

vagrant box add precise32 http://files.vagrantup.com/precise32.box

Ai só esperar baixar e partir para a configuração.

vagrant up

Esse comando ira iniciar a VM.

Quando ela estiver iniciado, basta acessar ela via ssh e configurar da forma que achar melhor.

vagrant ssh

Se por acaso você fizer merda, basta destruir a VM, depois disso basta iniciar e acessar via ssh.

vagrant destroy

Agora vamos configurar o Vagrantfile.


Vagrant.configure(2) do |config|
    config.vm.box = "ubuntu32"

    config.vm.network :forwarded_port, host: 8080, guest: 80
    config.vm.network :forwarded_port, host: 3306, guest: 3306
end

Com essa configuração, estamos fazendo um redirecionamento de portas, apontando as portas do host (minha máquina) para o guest (VM).
Bom, eu não sei muito sobre o Vagrantfile, mas aqui esta a sua documentação.

Até aqui falamos como configurar, subir e bla bla bla. Agora vamos falar sobre o motivo de usarmos o Vagrant e não a VM direto.

A parte interessante do uso do Vagrant é o fato que ele já monta uma unidade de disco “/vagrant” dentro da VM, essa pasta é a mesma que você fez o “vagrant init”.

Se ainda não consegui te convencer, seguem alguns dos meus motivos para usar o Vagrant.

  • Todo o trabalho para instalar uma VM
  • “vagrant destroy” desfaz toda a merda que você fez
  • Redirecionamento de portas de forma simples
  • “vagrant up” tudo funcionando “vagrant halt” seu computador fica limpo
  • Monta uma unidade de disco por padrão

Acho que é isso, escrevi bastante aqui, espero que tenham gostado.

A oficina do Diabo – Arduino

Sabe aquele momento onde você esta meio sem fazer nada e percebe que pode aprender uma coisa nova e diferente da área que você lida todos os dias. Então, foi assim que eu comecei a aprender eletrônica.

Lembrei das aulas que tive na escola, era uma matéria que eu tinha que passava por todos os cursos técnicos para que possamos escolher qual nós iriamos fazer, ai vem a mente o que é um capacitor, um resistor e um transistor.
Ai eu penso “bem que eu poderia estudar eletrônica usando um Arduino, que sabe fazer uma pequena automação residencial”. Mas isso é para quando souber o que estou fazendo rsrs.

Para conseguir eu precisva de pelo menos um Arduino. Foi ai que comecei a pesquisar, descobri que um dos meus colegas de trabalho possui um e-commerce de produtos para eletrônica o Baú da Eletrônica comprei um kit básico para iniciante, um Arduino Uno, uma protoboard maior do que a que vem no kit e mais algumas pequenas coisas para começar a brincadeira.

Agora é estudar e ver o que acontece 🙂

Conforme eu for fazendo testes e pequenos projetos eu vou postando aqui como foi feito.

Utilizando o Load Balancer Amazon AWS

Boa tarde.

Fiz um screencast para mostrar como criar um Load Balancer junto com dois servidores a baixo dele rodando apache na estrutura da Amazon AWS. Eu pensei em fazer com screenshots, mas depois de ver que eu já tinha tirando uns 15 e não estava na metada eu desisti.

Espero que esse post ajude vocês. Caso tenham alguma dúvida ou sugestão para outro screencast só deixar nos comentários 🙂

O video não ficou muito bom quando baixei a qualidade para 480p, mas era isso ou nada no vimeo.

Um abraço