いくつかのアプリケーション展開のスクリプトを作成し、bash(シェル)を使用してプロモーションプロセスを展開しています。これらのスクリプトは、CIプラットフォームが(最近のように)再び失敗する場合に備えて、フェイルセーフとして記述されています。
このプロセスでは、各アプリケーションにキーと値のペアを含むテキストファイルがあり、キーは展開領域の名前(dev、qa、prod)…であり、値は展開可能なファイルに関連付けられたハッシュです。
ファイルをソースするだけで値を収集するのではなく、キーを認識する最良の方法を決定するのに苦労しています...しかし、ファイルをソースして、各展開領域の値を手動で比較するのは長い道のりのように思えます。
RECAP 1.値(sha1sum)はありますが、それが属するキーが必要です2.ファイルからキー値ペアのキーを決定します3.関連する値を持つ最高のデプロイメント領域を決定します(複数の領域が潜在的に同じ値がリストされている場合、チェーンを登るにつれて可能性が高くなります。)
助言がありますか?
編集1 必要なコードが存在する場所は次のとおりです。
###################################################################################################
# IS THIS HASH CURRENTLY DEPLOYED SOMEWHERE ELSE? IF SO, WHERE?
###################################################################################################
grep "${deployHash}" "${deployHashHome}/${deployAppName}/${deployAppName}.manifest"
if [[ "$?" -eq 0 ]]
then
source ${deployHashHome}/${deployAppName}/${deployAppName}.manifest
previousDeployRegion=""
# logThis is a custom logging function which formats logs exactly how we want, we have a Splunk parser for the format
logThis "${scriptLogDir}/${deployLogFile}" "The hash: ${deployHash}, has been previously deployed to ${previousDeployRegion}." "INFO"
fi
Key-Valueファイルは次のようになります。
mylocal=ca9c244aa1b40f39fd06318f2be9fbc1a82c5c5c
dev=986b747d846555f8c5e393a5cfbbd061ee9d68a7
int=53b8fa87f2241a17623ead2f94032b1d2045069e
reg=53b8fa87f2241a17623ead2f94032b1d2045069e
stage=
prod=
dr=
編集2 追加のサンプルsha1sum値をサンプルのキー値ファイルに追加して、複数のキーに同じ値がどのように存在するかを示しました。