問題タブ [sshkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2381 参照

ruby - スクリプトが失敗した場合 (エラー) に続行し、Capistrano 3 を使用して出力をキャプチャする方法

Capistrano 2.x では、次のように :on_error => :continue を追加するだけです。

Capistrano 3.x または ssh-kit (基礎となる通信) でこれを行う方法がわかりません。

begin/rescue ブロックで新しい方法を囲んでみましたが、エラーが発生するのを止めるだけで、エラーからの出力は返されません。

私はまだこれを行う方法を知りたいのですが、私の1つのケースでそれを必要とする回避策を見つけました。それは、サーバーが失敗した場合にサーバーを停止させることです。

これは、シャットダウンが発生したときにのみエラーになると想定しています。

0 投票する
1 に答える
1979 参照

ruby - Capistrano 3 で別のユーザーとしてデプロイする方法

私は OS X 10.9.1 で Ruby 2.1 と Capistrano 3.1 を使用しており、CentOS 6.5 にデプロイしています。

ターゲット展開サーバーでは、展開ユーザーとして ssh できませんが、 としてadmin@myserverssh できpaul@myserverますsudo su - admin

テストタスクを作成しました:

そして、それは期待どおりに機能します:

管理者として Capistrano にデプロイ タスクを実行させるにはどうすればよいですか? つまり、コマンドを実行する前に、sudo su admin -cまたはsudo suシェルをプレフィックスとして付けます。

0 投票する
1 に答える
920 参照

ruby-on-rails - SSHKit によって呼び出された rake タスクからの出力を表示します

SSHKit によって呼び出される rake タスクから情報を出力できるようにしたいのですが、その方法がわかりません。

次のレーキ タスクがあるとします。

:hello タスクを単独で実行すると、"hello world" ステートメントが表示されます。ただし、sshkit タスクから呼び出すと、SSHKit 情報を取得するだけです。SSHKit から呼び出されたときに表示される最初の rake タスクから情報を書き出すにはどうすればよいですか?

EDIT1:

以下を追加して、基本的な端末出力を取得できることがわかりました。

しかし、やはり、出力される情報は同じです。'rake hello' を実行していることはわかりますが、'rake hello' からの出力ではないことがわかります。

0 投票する
1 に答える
10509 参照

logging - Capistrano ログ レベル

error詳細な出力を防ぐために、Capistrano 構成のログ レベルをに設定しました。にdeploy.rbを追加しましset :log_level, :errorた。これはうまくいきます。ただし、 経由executeでコマンドを実行すると、 のログ レベルで書き込まれているため、出力されませんDEBUGexecuteコマンドの出力を印刷するにはどうすればよいですか? captureの組み合わせを使用しputsて出力することはできますが、ログをストリーミングする必要がある場合は役に立ちません。

0 投票する
1 に答える
63 参照

path - Capistrano が 2 番目のコマンドにパス環境を適用していません

私の Capistrano デプロイメントは、複合コマンドの 2 番目のコマンドでハングしています。

https://github.com/capistrano/capistrano/blob/5986983915163e6681f2546bf6fad599d58cd024/lib/capistrano/dsl.rb#L59

SSHKit が次のコマンドを実行しようとする時点で:

cd /home/lawfm/deployments/staging/repo && git rev-parse

bash: git: command not foundエラーが発生し ます。

問題はここに文書化されていると思います: https://github.com/capistrano/capistrano/issues/675

私のデプロイは 3.0.1 で機能していましたが、3.1 へのアップグレードでエラーが発生しました。最初に、pty がデフォルトでオンになっていることを読んだので、次のように設定しました。

set :pty, false

残念ながら、.bash_profile も .profile も読み込まれていないようです。

2番目のコマンドであるため、パスを設定したり、gitコマンドを直接マップしたりする方法を理解できないようです。