Implementar el proyecto Ruby on Rails en EC2

Configuré todo y puedo conectarme al server a través de ssh en un nivel gratuito

ahora mi proyecto es ¿cómo puedo upload los files del server y la database?

Veo que hay algunas gems en los Rails, como el caucho, que despliegan los files en un server, pero ¿cómo puedo también integrar git para que pueda confirmar los cambios también?

Código

Para cargar los files, echa un vistazo a capistrano . Otra herramienta popular es Vlad el implementador .

Aquí hay un simple deploy.rb para una aplicación rails3 (asumiendo pasajero) que solo necesita un server en este momento (reemplace todos los valores reales):

 require 'bundler/capistrano' require 'capistrano_colors' set :application, "<APP_NAME>" set :repository, "git@github.com:<USER>/<PROJECT>.git" set :branch, "master" set :deploy_to, "/home/<DEPLOY_USER>/<APP_NAME>" set :keep_releases, 3 set :scm, :git set :user, "<DEPLOY_USER>" set :use_sudo, false set :deploy_via, :remote_cache default_run_options[:pty] = true default_run_options[:shell] = '/bin/bash -l' ssh_options[:forward_agent] = true role :web, "<IP_OR_PUBLIC_DNS>" role :app, "<IP_OR_PUBLIC_DNS>" namespace :deploy do task :start do ; end task :stop do ; end task :restart, :roles => :app, :except => { :no_release => true } do run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}" end end after "deploy", "deploy:cleanup" 

Nota: debe agregar ssh las keys privadas para el usuario de implementación, así como también la key que usa para github antes de ejecutar la cap deploy . (por ejemplo, ssh-add ~/.ssh/id_dsa )

Base de datos

En términos de la database, puede ejecutar migraciones como parte de una implementación mediante la cap deploy:migrations , o de forma independiente a través de la cap deploy:migrate . Solo asegúrate de include un server con el rol :db

 role :db, "<IP_OR_PUBLIC_DNS>", :primary => true 

( Nota: este es el server que se usará para ejecutar las migraciones, no el db real. El db debe especificarse en su database.yml ).

La configuration de la database está más allá del scope de esta respuesta, pero puede ejecutar una database directamente en la instancia o echar un vistazo al RDS de Amazon, que es realmente simple de configurar y más estable que un file ejecutable en una sola ejemplo.