Tutorial Capistrano

Anterior Índice Próximo

Instalação

Muita gente gosta de usar o gems para instalar coisas feitas em ruby. Eu particularmente eu não gosto por um argumento muito bem dado por meu amigo Antonio Terceiro.

O gems é uma ferramenta para gerenciar os pacotes do ruby, sendo aparentemente uma idéia legal e "invoadora", já que vc com um único comando o gems instala pra vc o que vc precisa e todas as suas dependências smile . Mas esta idéia não é tão inovadora assim já que várias distribuições linux possuem sistema de pacotes para gerenciar os seus sistemas, como é o caso do Debian e Slackware por exemplo. O problema do gems é que ele só se preocupa em gerenciar os pacotes do ruby esquecendo-se dos pacotes existentes no resto do sistema.

Então se vc tem um sistema que utiliza uma ferramenta para gerenciar pacotes, que é o meu caso com o Debian, eu recomendo não usar o gems pois mais cedo ou mais tarde ele vai acabar quebrando o seu sistema smile

Com gems

Mas como tem gente que usa o gems lá vai a instalção com gems:

  gem install capistrano

Com Debian

em breve

Introdução

Tudo que estiver em vermelho é porque precisa ser revisado smile

ver a tradução para deploying

O que é Capistrano?

Dizer que o Capistrano é um utilitário para "deploying" aplicações webs, seria o mesmo que dizer que computadores são máquinas que deixam você escrever o seu trabalho da escola. É um entendimento grosseiro. Capistrano é capaz atualmente de fazer muito mais do que somente "deploying" aplicações webs. Entretanto, devido ao capistrano ser originalmente criado para realizar "deploying" de aplicações webs, este tutorial irá focar-se nisso, e depois gastar um poco de tempo no final para mostrar algumas das outras possibilidades.

Historicamente, Capistrano era originalmente chamado de SwitchTower. O nome foi mudado em março de 2006 devido há um conflito de marcas.

O que ele pode fazer?

Ultimamente, Capistrano é um utilitário que pode executar comandos em paralelo em multiplos servidores. Ele permite que você defina tarefas (tasks), que podem incluir comandos que serão executado nos servidores. Você também pode definir papéis (roles) para seus servidores, e depois especificar que certas tarefas (tasks) se aplicam somente em certos papéis (roles).

Capistrano é muito configurável. A configuração padrão inclui um conjunto de tarefas básicas aplicáveis para desenvolvimento web. (Mais destas tarefas serão distas mais adiante.)

Capistrano pode fazer tudo o que vc pode fazer com shell script. Você somente roda aqueles snippets de shell script nos servidores remotos, possivelmente interagindo com eles baseados em suas saídas. Você pode também fazer upload de arquivos, e Capistrano inclui alguns templates básicos que permitem que você crie e deploy coisas dinamicamente como telas de manutenção, arquivos de configuração, shell scripts, e mais.

Capistrano can do just about anything you can write shell script for. You just run those snippets of shell script on remote servers, possibly interacting with them based on their output. You can also upload files, and Capistrano includes some basic templating to allow you to dynamically create and deploy things like maintenance screens, configuration files, shell scripts, and more.

Que suposições ele faz?

Assim como o Rails, o Capistrano faz muitas suposições sobre seu código, e a maneira que você faz coisas com ele (como a distribuição).

Existem basicamente dois níveis de suposições no Capistrano: suposições núcleo, e suposições feitas pelas tarefas padrões.

As suposições núcleo do Capistrano tendem a ser completamente gerais (embora ajam algumas exceções), e não são geralmente possíveis de perpassá-las. Estas são:

  • Você está interegindo com pelo menos um servidor remoto.
  • Você provavelmente vai precisar de um túnel para acessar o seu servidor alvo.
  • You may need to tunnel through a gateway server to access your target server.
  • Você está usando SSH para se conectar aos servidores
  • O servidor remoto é capaz de entender comandos shell POSIX . (Windows, por padrão, não se encaixa nesta categoria. É uma pena wink )
  • O password para todos os servidores é o mesmo
  • Algumas coisas que você quer executar em um conjunto de seus ambientes de produção, é realizado em todos os seus servidores de produção
  • Some things you only want to execute on a subset of your production environment, rather than on all of your production servers.

As suposições feitas pelas tarefas padrĩes são mais específicas, mas são configuráveis e podem ser sobrescritas.Algumas delas são:
  • Você está desenvolvendo uma aplicação web.
  • Você está usando Ruby on Rails para desenvolver a sua aplicação.
  • Você está usando subversion para gerenciar seu código fonte.
  • Você está "deploying" sua aplicação em "/u/apps/#{appname}" em todas as máquinas.
  • Você está usando FastCGI na sua aplicação.
  • Você está usando lighttpd ou apache como frontend da sua aplicação.

Este manual se prenderá a estas suposições, mas mostrará também (quando for o caso) como configurar-lás ou sobrescrevê-las.

-- LeandroNunes - 14 Jun 2007
Topic revision: r1 - 05 Jul 2008, UnknownUser
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki-Colivre? Send feedback