私はカピストラーノが初めてで、始めるのに少し苦労しています。私がする必要があることの簡単な説明:
git pull
中央のビルド サーバー上の git リポジトリからの最新のコード。このビルド サーバーの環境は、デプロイメント環境と正確に一致します。ここでビルドするコードが必要です。たとえば、Mac ラップトップでビルドされたバイナリを展開したくありません。- このマシンでバイナリをコンパイルします。
- このマシンからすべてのターゲット マシンに展開します。
- ビルド マシン上で SSH 接続してビルドを実行できる共有ユーザーがいます。
- ビルド マシンはゲートウェイ マシンの背後にあり、直接アクセスできません。
- すべての展開ターゲット マシンにもこの共有ユーザーがあり、ゲートウェイの背後にあります。
- 展開されたバイナリは単一の実行可能ファイルであり、ターゲット マシンに init スクリプトがあります。バイナリをデプロイしてシンボリック リンクを変更したら、init スクリプトを使用してサービスを再起動します。
- 全員が、必要なすべてのタスクに対応する適切な SSH キーとエージェント転送を持っています。
したがって、原則としてはかなり単純に見えますが、カピストラーノは独断的で少し魔法のようです。その結果、これらすべてを達成する方法がわかりません。コードをチェックアウトして、たとえば最初にビルドせずにリモートマシンにコピーしたいようです。
Capistrano のデフォルトの機能をすべて無視して、適切なサーバーでいくつかのシェル コマンドを実行させる必要があると思います。擬似コード:
ssh buildmachine via gateway "cd repo && git pull && make"
ssh targetmachine(s) via gateway "scp buildmachine:repo/binary .; <mv && symlink>; service foo restart"
仕事に適したツールを使用していますか? 四角い穴に丸いペグが入っているようなものです。
cap
カピストラーノ構成ファイルの内容と、これを達成するために実行するコマンドを説明してもらえますか?
ところで、私は周りを検索して、リモート git リポジトリを使用して capistrano でデプロイするが、本番サーバーでgit を実行せずにデプロイする、サーバーの手動プルから Capistrano に移動するなどの質問を調べました。