これが私の職場でのやり方です:
構成ファイルは、環境ごと、サーバーの種類ごとにSVNに保存します。これは次のようになります--DEVPROJ1
---API
----- api_config_file
--- WEB
----- web_config_file
--QAPROJ1
--- API
----- api_config_file
--- WEB
----- web_config_file
- PRODPROJ1
--- API
----- api_config_file
--- WEB
----- web_config_file
このように、PROD上のすべてのAPIサーバーはでSVNPRODPROJ1/API/api_config_file
の構成ファイルを使用し、DEV上のすべてのAPIサーバーはでSVNの構成ファイルを使用しますDEVPROJ1/API/api_config_file
。
私の展開スクリプトは、環境固有の構成を考慮して各サーバーに展開します。これは、展開スクリプトに「Deployto」と指示するだけで実現でき
ますAPI:PRODPROJ1=10.0.0.1,API:PRODPROJ1=10.0.0.2
。次に、スクリプトはSVNのPRODPROJ1からAPI構成を取得します。
ご覧のとおり、すべてのAPIに汎用構成ファイルを使用しています。各APIで、ローカルIPアドレスなどの特定の変更が必要になる場合があります。これらは、インストール時にデプロイメントスクリプトに置き換えられます。同様のアプローチを使用できますが、環境(DEVPROJ1、QAPROJ1)で区切る代わりに、IPアドレスまたはマシン名で区切ることができます。
いずれにせよ、ランダムなサーバーで個々の変更を探すのではなく、変更を簡単に追跡および検証できるSVNにすべての構成を含めることを強く望んでいます。
もちろん、これらの構成ファイルの保守は手動のプロセスになります。