問題タブ [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.
ruby - スクリプトが失敗した場合 (エラー) に続行し、Capistrano 3 を使用して出力をキャプチャする方法
Capistrano 2.x では、次のように :on_error => :continue を追加するだけです。
Capistrano 3.x または ssh-kit (基礎となる通信) でこれを行う方法がわかりません。
begin/rescue ブロックで新しい方法を囲んでみましたが、エラーが発生するのを止めるだけで、エラーからの出力は返されません。
私はまだこれを行う方法を知りたいのですが、私の1つのケースでそれを必要とする回避策を見つけました。それは、サーバーが失敗した場合にサーバーを停止させることです。
これは、シャットダウンが発生したときにのみエラーになると想定しています。
ruby - Capistrano 3 で別のユーザーとしてデプロイする方法
私は OS X 10.9.1 で Ruby 2.1 と Capistrano 3.1 を使用しており、CentOS 6.5 にデプロイしています。
ターゲット展開サーバーでは、展開ユーザーとして ssh できませんが、 としてadmin@myserver
ssh できpaul@myserver
ますsudo su - admin
。
テストタスクを作成しました:
そして、それは期待どおりに機能します:
管理者として Capistrano にデプロイ タスクを実行させるにはどうすればよいですか? つまり、コマンドを実行する前に、sudo su admin -c
またはsudo su
シェルをプレフィックスとして付けます。
ruby-on-rails - SSHKit によって呼び出された rake タスクからの出力を表示します
SSHKit によって呼び出される rake タスクから情報を出力できるようにしたいのですが、その方法がわかりません。
次のレーキ タスクがあるとします。
:hello タスクを単独で実行すると、"hello world" ステートメントが表示されます。ただし、sshkit タスクから呼び出すと、SSHKit 情報を取得するだけです。SSHKit から呼び出されたときに表示される最初の rake タスクから情報を書き出すにはどうすればよいですか?
EDIT1:
以下を追加して、基本的な端末出力を取得できることがわかりました。
しかし、やはり、出力される情報は同じです。'rake hello' を実行していることはわかりますが、'rake hello' からの出力ではないことがわかります。
logging - Capistrano ログ レベル
error
詳細な出力を防ぐために、Capistrano 構成のログ レベルをに設定しました。にdeploy.rb
を追加しましset :log_level, :error
た。これはうまくいきます。ただし、 経由execute
でコマンドを実行すると、 のログ レベルで書き込まれているため、出力されませんDEBUG
。execute
コマンドの出力を印刷するにはどうすればよいですか? capture
の組み合わせを使用しputs
て出力することはできますが、ログをストリーミングする必要がある場合は役に立ちません。
path - Capistrano が 2 番目のコマンドにパス環境を適用していません
私の Capistrano デプロイメントは、複合コマンドの 2 番目のコマンドでハングしています。
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コマンドを直接マップしたりする方法を理解できないようです。