Capistrano развернуть: холод не работает - PullRequest
0 голосов
/ 31 марта 2012

У меня есть два вопроса. Одна маленькая и одна большая проблема.

  1. Почему я должен вводить парольную фразу в 10 раз больше, чем моя рабочая пробка
  2. После того, как я попытался установить capistrano через обучающий код-туориал и с некоторыми подсказками от stackoverflow. Я сел со многими учебниками по развертыванию capistrano и написал свою собственную новую версию deploy.rb Наш вывод gem env выглядит так

    Среда RubyGems:

    * * 1010
  3. RUBYGEMS ВЕРСИЯ: 1.8.15
    • РУБИНОВАЯ ВЕРСИЯ: 1.9.3 (2012-02-16, уровень исправления 125) [x86_64-linux]
    • КАТАЛОГ УСТАНОВКИ: /home/user/.rvm/gems/ruby-1.9.3-p125@myapp
    • RUBY EXECUTABLE: /home/user/.rvm/rubies/ruby-1.9.3-p125/bin/ruby
    • ИСПОЛНЯЕМЫЙ КАТАЛОГ: /home/user/.rvm/gems/ruby-1.9.3-p125@myapp/bin
    • ПЛАТФОРМЫ RUBYGEMS:
    • рубин
    • x86_64-линукс
    • ДРАГОЦЕННЫЕ ПУТИ:
      • /home/user/.rvm/gems/ruby-1.9.3-p125@myapp
      • /home/user/.rvm/gems/ruby-1.9.3-p125@global
    • КОНФИГУРАЦИЯ GEM:
      • : update_sources => true
      • : многословно => верно
      • : тест => false
      • : обратная трассировка => ложь
      • : массовый_порог => 1000
    • ДИСТАНЦИОННЫЕ ИСТОЧНИКИ:

И наш deploy.rb здесь

require "bundler/capistrano"
set :application, "myapp"
set :repository,  "#{application}@myserver:/home/git/repos/#{application}.git"
set :scm, :git
set :user, "#{application}"
set :use_sudo, false
set :deploy_to, "/home/#{application}/#{application}"
set :deploy_via, :remote_cache
set :keep_releases, 5

server "myserver", :app, :web, :db, :primary => true

set :branch, "master"

ssh_options[:forward_agent] = false
default_run_options[:pty] = true

before "deploy:assets:precompile", "bundle:install"

load 'deploy/assets'

namespace :deploy do
 task :start do ; end
 task :stop do ; end
 task :restart, :roles => :app, :except => { :no_release => true } do
   run "touch #{File.join(current_path,'tmp','restart.txt')}"
 end
end

Наша разработка Мы используем Apache + Passagner и установку rvm http://beginrescueend.com/rvm/install/. На сервере мы устанавливаем его таким же образом. Каждый пользователь (apps, gemsets или realuser) должен быть членом группы rvm ... Мы используем modrails для установки passagner ... http://www.modrails.com/documentation/Users%20guide%20Apache.html#_installing_via_the_gem

Но почему я получаю ошибку, когда использую cap deploy:cold. cap deploy:check скажем You appear to have all necessary dependencies installed Ошибка здесь

 triggering after callbacks for `deploy:finalize_update'
  * executing `bundle:install'
  * executing "ls -x /home/myapp/myapp/releases"
    servers: ["myserver"]
    [myserver] executing command
    [myserver] sh -c 'ls -x /home/myapp/myapp/releases'
    command finished in 82ms
  * executing "cd /home/myapp/myapp/releases/20120331143114 && bundle install --gemfile /home/myapp/myapp/releases/20120331143114/Gemfile --path /home/m
ahaloo/myapp/shared/bundle --deployment --quiet --without development test"
    servers: ["myserver"]
    [myserver] executing command
    [myserver] sh -c 'cd /home/myapp/myapp/releases/20120331143114 && bundle install --gemfile /home/myapp/myapp/releases/20120331143114/Gemfile --path /h
ome/myapp/myapp/shared/bundle --deployment --quiet --without development test'
 ** [out :: myserver] sh: bundle: not found
    command finished in 73ms
*** [deploy:update_code] rolling back
  * executing "rm -rf /home/myapp/myapp/releases/20120331143114; true"
    servers: ["myserver"]
    [myserver] executing command
    [myserver] sh -c 'rm -rf /home/myapp/myapp/releases/20120331143114; true'
    command finished in 171ms
failed: "sh -c 'cd /home/myapp/myapp/releases/20120331143114 && bundle install --gemfile /home/myapp/myapp/releases/20120331143114/Gemfile --path /home/
myapp/myapp/shared/bundle --deployment --quiet --without development test'" on myserver
marcus@lenny:~/dev/workspace/myapp$

Наши bundle list здесь

 * actionmailer (3.2.0)
 * actionpack (3.2.0)
 * activemodel (3.2.0)
 * activerecord (3.2.0)
 * activeresource (3.2.0)
 * activesupport (3.2.0)
 * arel (3.0.2)
 * builder (3.0.0)
 * bundler (1.1.1)
 * capistrano (2.11.2)
 * coffee-rails (3.2.1)
 * coffee-script (2.2.0)
 * coffee-script-source (1.2.0)
 * erubis (2.7.0)
 * execjs (1.3.0)
 * highline (1.6.11)
 * hike (1.2.1)
 * i18n (0.6.0)
 * journey (1.0.3)
 * jquery-rails (1.0.17)
 * json (1.6.5)
 * libv8 (3.3.10.4)
 * mail (2.4.4)
 * mime-types (1.17.2)
 * multi_json (1.1.0)
 * net-scp (1.0.4)
 * net-sftp (2.0.5)
 * net-ssh (2.3.0)
 * net-ssh-gateway (1.1.0)
 * polyglot (0.3.3)
 * rack (1.4.1)
 * rack-cache (1.2)
 * rack-ssl (1.3.2)
 * rack-test (0.6.1)
 * rails (3.2.0)
 * railties (3.2.0)
 * rake (0.9.2.2)
 * rdoc (3.12)
 * sass (3.1.15)
 * sass-rails (3.2.0)
 * simple_form (2.0.1)
 * sprockets (2.1.2)
 * sqlite3 (1.3.5)
 * therubyracer (0.9.10)
 * thor (0.14.6)
 * tilt (1.3.3)
 * treetop (1.4.10)
 * tzinfo (0.3.32)
 * uglifier (1.2.3)
 * uuidtools (2.1.2)

Может кто-нибудь помочь нам, пожалуйста, получить рабочее капистрано

Ответы [ 3 ]

0 голосов
/ 31 марта 2012

К проблеме 1 (введите пароль много раз):

Вы можете сгенерировать пару открытого / закрытого ключа на локальном компьютере с помощью

ssh-keygen -t rsa ( Введите для всех)

При этом будут созданы два файла в каталоге /home/LOCAL_USER/.ssh/ (id_rsa и id_rsa.pub )

Затем на сервере создайте илиотредактируйте файл /home/user/.ssh/authorized_keys и добавьте содержимое id_rsa.pub

При этом ваш локальный компьютер получает доступ к этому серверу ( ведение журналас пользователем ) без запроса пароля.

0 голосов
/ 01 апреля 2012

Вы не использовали интеграцию rvm-capistrano, интеграция описана здесь:

Обратите внимание, что rvm-capistrano больше не является частьюУстановка RVM, это отдельный гем, вам нужно включить его в Gemfile и требовать в config/deploy.rb, также не забудьте установить set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"")

0 голосов
/ 31 марта 2012

Проверьте ваш путь Capistrano, выполнив cap shell , затем echo $ PATH .Вероятно, вы увидите ваши стандартные / usr / local / bin и / usr / bin, но это не то, где RVM имеет Bundler

Отредактируйте файл config / deploy.rb Capistrano и добавьте следующие строки:

# Add RVM's lib directory to the load path.
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))

# Load RVM's capistrano plugin.    
require "rvm/capistrano"

set :rvm_ruby_string, '1.9.2'
set :rvm_type, :user  # Don't use system-wide RVM

Rails 3 - Ошибки Bundler / Capistrano

...