0

私は Rails を使用し、Capistrano を使用してアプリケーションをサーバーにデプロイしています。Jenkins サーバーがあります (自分の linode に)。

私が知りたいのは、請負業者が作業を完了し、私が持っているツール (Jenkins など) を使用するのに十分なアクセス権を持っているが、重大な損害を与えないようにする方法です。

ワークフローは次のようになります。

  • 変更をプライベート git リポジトリにコミットする
  • ジェンキンスにデプロイする
  • ステージング サーバー (私の linode) に変更をデプロイする
  • 変更をライブ サーバーにデプロイする (クライアントの linode)

私はすべてにSSHを使用していますが、sudoコマンドを実行してユーザーパスワードを変更し、SSHキー/ペア認証をバイパスできる可能性があるという点で、ユーザーにアクセスを許可しすぎているのではないかと思っています. 各ユーザーは制限付きの Linux ユーザー アカウントを持ち (同じ制限付きアカウントを共有している可能性があります)、それに SSH キーを追加する必要がありますか?

もう 1 つの質問は、Jenkins を使用してステージング/ライブ サーバーにデプロイし、Jenkins サーバーからそれらのサーバーへのアクセスのみを許可することはできますか?

開発者のみに git リポジトリへのアクセスを許可することで、これをすべて行うことはできますか? Jenkins はそれを追跡し、ステージング/ライブにデプロイしますか?

4

1 に答える 1

2

基本的には、次はアプローチだと思います。

  1. コミットがgitoliteまたはあなたが使用するものにプッシュされた後にテストを実行するようにjenkinsをセットアップし、結果を全員にメールで送信します。
  2. テストを行う必要があるため、請負業者がステージングにデプロイできるようにします。
  3. 本番環境にデプロイできるのはあなただけです。

また、ステージング マシンで sudo を与えるべきではありません。コードを使用してディレクトリへのアクセスを許可するデプロイメント ロールを設定するだけです。パッセンジャーを使用している場合は、サーバーを再起動する必要さえないため (私が何を意味するかわかっている場合は touch %RAILS_ROOT%/tmp/restart.txt を使用するだけです)、rvm を介して ruby​​ env をセットアップします。

于 2012-12-13T12:54:29.953 に答える