Skip to content

Latest commit

 

History

History
82 lines (56 loc) · 2.63 KB

README-vm.mkd

File metadata and controls

82 lines (56 loc) · 2.63 KB

VM do ambiente de produção

Esta imagem de máquina virtual possui um servidor instalado com as mesmas configurações de produção. A infraestrutura existente é a seguintes:

  1. nginx
    • Servindo os arquivos estáticos
    • Funcionando como proxy para o passenger
  2. passenger
    • Servindo a aplicação
  3. MySQL

Os arquivos estáticos são servidos através do ngnix na porta 3000 (da máquina virtual) e aplicação através do Passenger na porta 80.

Setup do Vagrant

Para instalar o Vagrant siga os passos descritos em no README. Graças a conflitos nas versões das dependedências do Vagrant e do Redu não é possível adicioná-lo ao Gemfile do projeto. Uma ideia é instalar no Gemset global do RVM.

Setup da VM

Basta adicionar uma cópia da máquina virtual ao vagrant. Para ter acesso a esta cópia entre em contato com guilhermec [at] redu.com.br ou o líder técnico do seu time.

$ vagrant box add redu package.box

Em seguida incialize a máquina virtual e crie uma base de dados e crie database.yml para o ambiente de performance. Também é necessário processar os arquivos estáticos utilizando o jammit.

$ vagrant up
$ vagrant ssh
vagrant@lucid32:~$ cd /vagrant/
vagrant@lucid32:/vagrant$ cp config/database.yml.example config/database.yml

Faça o setup do Redu normalmente:

vagrant@lucid32:/vagrant$ bundle exec rake db:create RAILS_ENV=performance
vagrant@lucid32:/vagrant$ bundle exec jammit -c config/assets-performance.yml 
vagrant@lucid32:/vagrant$  RAILS_ENV=performance script/delayed_job restart --queues=email,general,general -n 3

Baixe um dump do banco de produção de salve dentro da pasta do Redu. Para carregar o dump no MySQL da VM rode o comando:

vagrant@lucid32:/vagrant$ mysql -u root redu_performance < redu_rails3.2012-07-09T02-10-09

Iniciando servidor

No primeiro acesso é necessário instalar o script que inicializa o nginix no init.d do sistema:

vagrant@lucid32:/vagrant$ sudo cp config/vagrant/nginx /etc/init.d/
vagrant@lucid32:/vagrant$ sudo chmod +x /etc/init.d/nginx

Para iniciar o servidor:

vagrant@lucid32:/vagrant$ sudo cp config/vagrant/nginx /etc/init.d/
vagrant@lucid32:/vagrant$ sudo /etc/init.d/nginx start

Pronto. A aplicação funcionará na porta 8080 da máquina host (porta 80 da VM).

Parando o servidor

vagrant@lucid32:/vagrant$ sudo /etc/init.d/nginx stop

Delisgando a VM:

$ vagrant halt

Referências

  1. http://www.modrails.com/documentation/Users%20guide%20Nginx.html
  2. http://railscasts.com/episodes/293-nginx-unicorn?view=asciicast