初めて継続的インテグレーションパイプラインをセットアップしたいと思います。 MySQLとRedisを指す構成ファイルを含むWebサイトがあります。パッケージを一度ビルドしてから、テスト、UAT、およびライブ環境にデプロイしたいと思います。
ビルド間で不整合が発生する可能性があるため、各環境にデプロイした後にパッケージを再構築したくありませんが、デプロイ先の環境に応じて構成ファイルを変える必要があるため、代替手段が見つかりません(テストサーバーは、ライブまたはUATに別のデータベースを使用します)。
これがどのように可能になるかについて誰かが何か考えを持っていますか?
シェフや人形などのツールは、この種の目的(プロビジョニング)用に構築されているため、調査することをお勧めします。 chefがスクリプト内のテンプレートと変数を使用してこれらを置き換えていることを私は知っています。このようなフレームワークが不要な場合は、独自のデプロイスキームで同様の置換を常に使用するか、デプロイによって影響を受けない外部化されたディレクトリに構成が静的に配置され、その環境または1回限りのセットアップのイメージにベイクされることを期待できます。 (スケーリングの欠点が適用されます)。
これを行う最善の方法は、Webサイトの構成フォルダーから構成ファイルを削除することです。
次に、puppetに保存される環境ごとに異なる構成ファイルを作成します。 Puppetは、実行している環境に応じて、プロビジョニング時に正しい構成ファイルをWebサイトの構成フォルダーに追加できます。