1

新しいサーバーがあるときに、イメージを使用する代わりに capistrano deploy セットアップを実行できるようにセットアップしようとしています。

Capistrano V3 を使用していることが原因だと思います。たとえば、rvm-capistrano gem を使用することを最初に考えましたが、次の問題が発生しています。念のため、 deploy.rb ファイルと capfile の両方に require "rvm/capistrano" を含めました。

cap staging rvm:install_rvm
cap aborted!
Don't know how to build task 'rvm:install_rvm'

それから私は周りを見回し、capistrano v3 用に特別に意図された capistrano-rvm gem があることがわかりましたが、未開発のようで、同じ問題があります。capistrano は rvm:install_rvm を認識しません。

そのため、後で、タスク自体に rvm をインストールしようとすることにしました。

sudo "apt-get -y install curl"
execute "\curl -L https://get.rvm.io | bash"
execute "source ~/.rvm/scripts/rvm"
execute "rvm requirements"
execute "rvm install ruby"
execute "rvm use ruby --default"
execute "rvm rubygems current"
execute "gem install rails"

しかし、私はこれを取得し、curl から cu の文字が消える理由がわかりません:

INFO [7e26eda7] Running /usr/bin/env rl -L https://get.rvm.io | bash on 192.168.1.126
DEBUG [7e26eda7] Command: rl -L https://get.rvm.io | bash
DEBUG [7e26eda7]        bash: $'\025rl': command not found
DEBUG [7e26eda7]
 INFO [7e26eda7] Finished in 0.006 seconds command successful.
 INFO [14e12c80] Running /usr/bin/env source ~/.rvm/scripts/rvm on 192.168.1.126
DEBUG [14e12c80] Command: source ~/.rvm/scripts/rvm
 INFO [14e12c80] Finished in 0.153 seconds command successful.
 INFO [a501984d] Running /usr/bin/env rvm requirements on 192.168.1.126
DEBUG [a501984d] Command: rvm requirements
cap aborted!
rvm requirements stdout: Nothing written
rvm requirements stderr: Nothing written
/home/hak8or/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-0.0.34/lib/sshkit/command.rb:94:in `exit_status='
/home/hak8or/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-0.0.34/lib/sshkit/backends/netssh.rb:125:in `block (4 levels) in _execute'

それで、いくつかのグーグルの後、私は試します

execute "curl -L get.rvm.io | bash -s stable --auto"

しかし、見返りに私は得る

 INFO [0e84ae63] Running /usr/bin/env source ~/.rvm/scripts/rvm on 192.168.1.126
DEBUG [0e84ae63] Command: source ~/.rvm/scripts/rvm
 INFO [0e84ae63] Finished in 0.139 seconds command successful.
 INFO [9e5a9f02] Running /usr/bin/env rvm requirements on 192.168.1.126
DEBUG [9e5a9f02] Command: rvm requirements
cap aborted!
rvm requirements stdout: Nothing written
rvm requirements stderr: Nothing written
/home/hak8or/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-0.0.34/lib/sshkit/command.rb:94:in `exit_status='
/home/hak8or/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-0.0.34/lib/sshkit/backends/netssh.rb:125:in `block (4 levels) in _execute'

そしてcurlコマンドからの大量のゴミ。RVMが正しくインストールされていないと思います。

これらすべてのコマンドを含むスクリプトを capistrano で実行すると、ターミナル ウィンドウに大量のゴミが表示されます。ただし、ローカルで実行すると、マシンに ssh して実行することを意味します

\curl -L https://get.rvm.io | bash
rvm requirements

問題はありません。特にカピストラーノとのssh接続を介して実行されていることに関係していると思いますが、手がかりがありません。完全に更新されたubuntuサーバーのデプロイユーザーでこれらすべてを実行しています。テスト目的で、デプロイユーザーに完全なパスワードなしのsudoを付与しました。

4

2 に答える 2

2

これは、jenkins サーバーの構築に使用する完全な Install Ruby 関数です。Capistrano V2を使用していることを覚えておいてください。楽しみ。

task :install_ruby, roles => :app  do
  run "yum --exclude=*.i386 --exclude=*.i586 install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel libxml2-devel libxslt-devel"
  run "bash -s stable < <(curl -k -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)"
  run "source /etc/profile"  
  run "rvm install 1.9.3 --autolibs=enabled"
  run "rvm use 1.9.3 --default"   
  run "gem install capistrano", { :shell => 'bash'}
  run "gem install railsless-deploy", { :shell => 'bash'}
  run "gem install ntlm-http; true", { :shell => 'bash'}
  run "gem install domain_name", { :shell => 'bash'}
  run "gem install webrobots", { :shell => 'bash'}
  run "gem install mechanize", { :shell => 'bash'}
end
于 2013-09-27T19:28:37.653 に答える