0

リモートコードを実行する前に、いくつかの長いコンパイル手順を実行する cap スクリプトがあります。このすべてが発生している間は立ち去ることができるようにしたいのですが、コンパイルが完了するとすぐに、リモート サーバーのパスワードを要求されます。残りを無人で実行できるように、スクリプトにパスワードをすぐに要求させる方法はありますか?

パスワード プロンプトを完全に回避するためにパスワードなしの ssh を設定できることはわかっていますが、パスワードなしの ssh をまだ設定していないユーザーが無人でデプロイできる方法を探しています。

これに対する簡単な解決策をどこかで見たような気がしますが、正しい検索用語を見つけるのに苦労しています。

4

1 に答える 1

1

を介してほとんどのコマンドを実行している場合sudo(つまり、を持っている場合set :use_sudo, true)、フックbefore "deploy", "ask_for_password"してタスク「ask_for_password」を作成し、すぐにそれを使用してsudo、などのコマンドを実行できsudo dateます。Sudoは最初にのみプロンプトを表示し、その後、デプロイを完了するのに十分な長さのタイムアウトがあると考えられます。

それがうまくいかない場合...

...私たちはcapistranoについて話している-capistranoで単純ではない。それは信じられないほど強力なツールであり、それを「シンプル」だと思う人は誰も知りません。

全員をデプロイできるように設定する代わりに、「deployer」のようなユーザーとしてSSHで接続できるホストを設定してから、デプロイを実行させることができます。

ただし、デプロイは非常に重要なタスクです。特に本番環境では、誰もがデプロイできるとは限りません。展開が許可されているサーバーに展開する権限を持つユーザーのパスワードなしの公開鍵をインストールする方がよいと思います(たとえば、ステージングや本番環境よりもテストの方が多い)。

于 2012-11-15T22:34:36.337 に答える