私は現在、特定のプロジェクトのサーバー プロビジョニングと展開の自動化に取り組んでいます。Sprinkle & Capistrano を使用することにしました。スプリンクルを使用したプロビジョニングフェーズの一環として、展開を実行するためにカピストラーノで使用する必要がある「展開」ユーザーを作成したいので、実際にはsshユーザーの処理に行き詰まっています。私が直面している問題は、deploy.rb の設定方法に関連しています。ユーザーとパスワード (「root」としましょう) を sprinkle で使用するように設定し、その後それらを新しく作成したものに変更する方法がわかりません。 Capistrano でデプロイを実行するための「デプロイ」ユーザー。プロビジョニングと展開は 2 つの異なるフェーズですが、同じ構成を共有しています。この分野で経験のある人はいますか?
2 に答える
ElasticBox を使用して、任意のクラウドで Rails サーバーをプロビジョニングすることをお勧めします。
その目的のためにカスタム ボックスを作成するか、Rails ボックスを使用して自動化する必要があります。
ボックスの抽象化により、ファイル (deploy.rb など) にカスタマイズ手順を追加する柔軟性が提供されます。また、展開時にサーバーに ssh 構成を行うためのスクリプトを追加することもできます。
ここでは、 ElasticBox を使用してマルチサーバー Rails アプリをデプロイする方法を 説明する優れたブログ投稿を示します: https://elasticbox.com/blog/deploy-multi-server-rails-app/
次のように Capistrano のデプロイ ユーザーを構成できます。
set :user, "deploy_username"
を使用してパスワードを設定することもできますset :password, "secret_password"
が、パスワードを手動で入力するか、sprinkle に SSH キーをセットアップしてもらう方がおそらく賢明です。これにより、パスワードが平文で保存されることを回避できます。
ssh
Sprinkle には、ブロックの下に同様の設定があります。
ssh do
user 'sprinkle_user' # defaults to 'root'
password 'secret'
end
ただし、ここでも同じ問題が当てはまります。おそらく、この目的のためにパスワードを手動で入力する必要があります。