Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Recipes úteis para Capistrano
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
recipes(mysql e sqlite)
README.md

README.md

Recipes para Capistrano (MySQL e SQLite)

O conteúdo desta aplicação pode ser usado para fazer um rápido deploy de uma aplicação Rails, usando Capistrano.

  • Instalação das Gems para deploy;
  • Configuração dos arquivos para deploy;
  • Recipes;
  • Deploy.

Instalação das Gems para deploy

Para fazer o deploy, as seguintes gems devem ser adicionadas no arquivo Gemfile de seu projeto:


group :deploy do
  gem 'capistrano'
  gem 'rvm-capistrano'
end

group :production do
  gem 'unicorn'
end

Depois de adicionar as gems, deve-se executar o comando bundle install para que as dependências necessárias sejam instaladas.

O próximo passo é fazer com que a aplicação seja gerenciável pelo capistrano. Execute o seguinte comando (na raiz da aplicação):

capify .

Serão criados dois arquivos:

  • Capfile -> arquivo responsável por carregar as bibliotecas necessárias ao capistrano.
  • config/deploy.rb -> arquivo de configuração do deploy.

Configuração dos arquivos para deploy

Faça as alterações necessárias nas configurações dos arquivos criados:

Capfile

Carrega os arquivos que contém as tasks.

config/deploy.rb

Primeiramente, os arquivos que serão usados para configurar o deploy são carregados (arquivos que iremos adicionar da pasta recipes).

Note que estão sendo carregados os arquivos do MySQL e do SQLite. Se você for utilizar o MySQL para fazer o deploy, exclua a linha que carrega o arquivo do SQLite. Caso contrário, exclua a linha que irá carregar o arquivo do MySQL.

As seguintes variáveis podem ser alteradas, de acordo com as necessidades de cada projeto:

  • server -> Endereço do servidor de produção (neste caso estamos usando o mesmo servidor para a aplicação, banco de dados e servidor web, caso não for utilizar o mesmo para os três, coloque cada um separadamente).

  • set :user -> Usuário que será utilizado no processo de deploy (precisa ter permissão de escrita na pasta em que a aplicação será instalada).

  • set :application -> Deve ser informado o nome da sua aplicação (mesmo nome utilizado no git).
  • set :deploy_to -> Diretório para deploy, ou seja, caminho em que a aplicação será instalada.
  • set :deploy_via -> Mantém um repositório local do repositório do git no servidor que você está fazendo o deploy e faz uma busca pelas mudanças ao invés de fazer um clone de todo o repositório do projeto a cada deploy.
  • set :use_sudo -> Para informar se o capistrano pode ou não utilizar o sudo para executar certos comandos.

  • set :scm -> Usa plugin do git.

  • set :repository -> Informa onde o código fonte para deploy está.
  • set :branch -> Branch que será usada para fazer o deploy.

Recipes

Copie a pasta recipes para a pasta config da aplicação que deseja fazer o deploy. Os arquivos copiados, serão os seguintes:

  • config/recipes/base.rb

Instala no servidor tudo que é necessário para o funcionamento correto da aplicação (quando não tem nada instalado no servidor).

  • config/recipes/check.rb

Verifica se o repositório local do git está em sincronia com o repositório remoto.

  • config/recipes/mysql.rb ou config/recipes/sqlite.rb

Para usar o MySQL - neste arquivo estão algumas configurações padrão do banco de dados e algumas tasks sobrescritas, responsáveis por instalar a última versão mais estável do mysql, criar o banco de dados da aplicação, gerar o arquivo de configuração do banco de dados e fazer o link do banco de dados com o último release da aplicação. Essas tasks são executadas automaticamente após os comandos de deploy que serão executados posteriormente.

Já para usar o SQLite, as tasks apenas geram o arquivo de configuração do banco de dados, criam um novo diretório para o banco de dados e fazem o link dele com o último release da aplicação.

Obs: Mantenha na aplicação apenas o arquivo que for utilizar: mysql.rb ou sqlite.rb.

  • config/recipes/nginx.rb

Faz a instalação da última versão estável no nginx e faz a configuração dele para a aplicação.

  • config/recipes/nodejs.rb

Instala a última versão do node.js.

  • config/recipes/rvm.rb

Neste arquivo estão algumas configurações do Ruby. Verifique se a versão do Ruby que você está usando é a exibida no arquivo, caso não seja, coloque a versão correta.

Se uma gemset não estiver especificada, a task tenta criá-la automaticamente.

  • config/recipes/unicorn.rb

Configura initializer do unicorn e da aplicação.

  • config/recipes/templates/mysql.yml.erb ou config/recipes/templates/sqlite.yml.erb

Arquivo de configuração do banco de dados que será utilizado na aplicação. Faça as alterações, caso necessário.

Obs: Mantenha na aplicação apenas o arquivo de configuração do banco de dados que irá utilizar.

  • config/recipes/templates/nginx_unicorn.erb

Configuração do nginx para o unicorn.

  • config/recipes/templates/unicorn.rb.erb

Arquivo template, do unicor, que será gerado de acordo com cada aplicação.

  • config/recipes/templates/unicorn_init.erb

Arquivo que envia os sinais do unicorn de acordo com o necessário. Inicia, para e reinicia o servidor para uma aplicação específica.

Deploy

Agora é hora de fazer o deploy!

O próximo comando é necessário para criar a estrutura base que será utilizada para gerenciar os deploys. Rode o comando abaixo para preparar o ambiente para o deploy:

 cap deploy:setup 

Para fazer o deploy, fazer o link do banco de dados com o release atual da aplicação, o link da aplicação para o release atual e finalmente iniciar a aplicação, rode o comando abaixo:

 cap deploy:cold 

No deploy ‘cold’ estão tarefas que só são executadas uma vez. Para fazer o deploy da aplicação no futuro, use apenas:

 cap deploy 

Se tudo correu bem, o deploy foi efetuado com sucesso!

Something went wrong with that request. Please try again.