Posts com o tag ‘deployment’

Instalação fácil de uma aplicação Rails – Parte 1

Terça-feira, 19 de agosto de 2008 por AkitaOnRails

Como todos já sabem, agora a Locaweb suporta Ruby on Rails nas hospedagens Linux compartilhada. Recentemente finalizamos a atualização da maioria das máquinas. 

Para saber se sua conta tem o novo suporte ou não, basta digitar o comando ‘rails -v’. Se o resultado for 2.1.0 ou superior, é porque sua hospedagem conta com Phusion Passenger. Caso contrário, será necessário abrir um chamado para migrar para as novas máquinas.

Finalmente, o objetivo deste post é fazer com que você, que já tem sua aplicação pronta ou está para começar uma, consiga rapidamente colocá-la em produção. A primeira coisa a fazer é configurar no Painel de Controle da Locaweb o apontamento do seu domínio (ex. railsdemo.tecnologia.ws) para a pasta na sua hospedagem (ex. /public_html/demo). Veja neste outro arquivo para mais detalhes sobre o Painel de Controle.

Feito isso, estou considerando que você não é um usuário já avançado em Rails – por isso esse artigo se chama “Parte 1″. Além disso, estou assumindo que você está utilizando algum ambiente Linux ou Mac. Para Windows depois faço outro post. Pretendo colocar pelo menos mais um ou dois artigos nesta série sobre deployment. O ponto chave se chama Capistrano

Agora, na sua máquina local execute os seguintes passos:

Para começar, instale o capistrano:

sudo gem install capistrano

Agora, instale uma nova gem que eu mesmo acabei de colocar no ar, da seguinte forma:

gem sources -a http://gems.github.com

sudo gem install akitaonrails-locarails

Pronto, agora crie um novo projeto Rails ou então entre no seu projeto já pronto e de lá digite o seguinte comando:

locarails .

Ele irá fazer uma série de perguntas sobre sua hospedagem. No caso: seu usuário da conta no Linux, o dominio que registrou no painel de controle, o diretorio (nome da aplicacao) que tambem apontou no Painel e os dados do MySQL (usuario, senha, servidor, nome do banco). Por enquanto ainda não coloquei suporte ao Postgres, mas isso virá em breve.

Se terminar tudo bem, agora execute este comando:

cap deploy:setup

Isso irá preparar o ambiente na sua conta Linux remota. Provavemente ele pedirá a senha da sua conta Linux, tenha ela em mãos.

Finalmente, basta executar este comando:

cap deploy

E tudo estará no ar no dominio que voce pediu – salvo em caso de ainda ter o tempo de propagação do DNS ou o Apache ainda não ter sido recarregado (ele é recarregado a cada 2 horas).

A gem locarails deve ser instalada somente na sua máquina local!

E toda vez que precisar colocar uma nova versão da sua aplicação em produção, simplesmente execute o comando ‘cap deploy’ e ele fará todo o necessário. O mais interessante: se em algum momento você subir um código com erros na sua hospedagem, seu site sair do ar por causa disso e você não souber como consertar rapidamente, execute este comando:

cap deploy:rollback

E isso voltará seu site exatamente à versão anterior que estava funcionando, em segundos!!

Observação Importante: a gem akitaonrails-locarails ainda é experimental! Somente a utilize se sua aplicação não for crítica! Qualquer feedback, sugestões ou reportar bugs nesta gem em específico, enviem e-mail diretamente para mim em fabio.akita@locaweb.com.br. Este procedimento não tem suporte oficial ainda.

Como colocar minhas aplicações Rails na Locaweb?

Quarta-feira, 13 de agosto de 2008 por AkitaOnRails

Acabamos de lançar o suporte oficial à hospedagem compartilhada Linux com Ruby on Rails. A primeira grande pergunta para os novos clientes deve ser: ”E agora, como coloco minhas aplicações em produção?”

Partindo do pressuposto que você já contratou uma hospedagem compartilhada Linux, transfira suas aplicações para a pasta ”rails_app”. Isso pode ser feito via FTP, SFTP ou SCP, o que lhe for mais conveniente. Por exemplo digamos que você tenha as aplicações “site” e “loja”, elas ficariam assim:

~/rails_app/site
~/rails_app/loja

Acesse sua conta via SSH (se for no Windows, use o programa Putty para isso). Todas as contas Linux tem SSH por padrão.

Crie links simbólicos das pastas ’public’ de suas aplicações para dentro da pasta ’public_html’: 

ln -s ~/rails_app/site/public ~/public_html/site
ln -s ~/rails_app/loja/public ~/public_html/loja

Finalmente, acesse o Gerenciador de Domínio através do Painel da Locaweb:

Gerenciador de Domínios

Domínios cadastrados

Através do Gerenciador de Domínio você pode configurar seu Site Principal, Site Adicional, Apontamentos e Redirecionamentos. Você pode cadastrar seu domínio, por exemplo, www.minhaloja.com.br e mapeá-la diretamente para /public_html/site e loja.minhaloja.com.br para /public_html/loja.

Alteração da Raíz do Site

Feita a alteração da raíz do seu site (seja Site Principal ou Site Adicional), será necessário aguardar no máximo 2 horas para que o Apache recarregue sua nova configuração. Se você acabou de registrar seu domínio também existe o tempo de propagação do DNS que pode variar, mas costuma ser rápido. 

Com esta organização você pode colocar uma ou mais aplicações na mesma conta. Claro, infelizmente alguma coisas não rodarão em ambiente compartilhado, como a gem Ferret ou outras que dependam de daemons (servidores) separados. Para esses casos a solução é um ambiente virtual/dedicado. Aguardem mais novidades nessa área, muito em breve teremos mais surpresas!

Dica importante: o Rails antes da versão 2.1 criava um arquivo public/.htaccess. Ele pode ser incompatível com a configuração do Passenger, portanto não se esqueça de apagá-lo para sua aplicação funcionar corretamente. Ele era necessário quando você queria subir a aplicação com FastCGI, mas o Passenger é muito melhor que FastCGI agora.

Outro detalhe: se quiser fazer alterações no seu site que já foi instalado como mostrei acima, não basta apenas sobrescrever os arquivos do seu projeto Rails. Isso porque o Passenger mantém instâncias persistentes em memória para garantir performance.

Para que suas alterações reflitam no seu site, é necessário reiniciar esses Rails. Isso é feito simplesmente criando um arquivo texto vazio chamado restart.txt. Por exemplo, se quiser reiniciar o Rails da loja, faça assim:

touch ~/rails_app/loja/tmp/restart.txt

Pronto, basta reiniciar o browser e tudo estará atualizado corretamente!