Я сценарію деяких розгортання додатків і розгортати процеси просування за допомогою bash (shell). Ці сценарії написані як failsafe у випадку, якщо наша платформа CI знову виходить з ладу (як це було недавно).
У цьому процесі кожна програма має текстовий файл з парами ключових значень, де ключем є ім'я регіону розгортання (dev, qa, prod)… і значенням є хеш, пов'язаний з розгортаемими файлами.
Я намагаюся визначити, як краще підходити до розпізнавання ключа замість того, щоб збирати цінність від простого пошуку файлу в… але пошук файлу в, а потім вручну порівняння значень для кожної області розгортання здається, що він повинен бути довгий шлях.
RECAP 1. У мене є значення (sha1sum), але мені потрібен ключ (и), до якого він належить 2. Визначити ключ з парою значень ключа з файлу 3. Визначити найвищу область розгортання з асоційованим значенням (тобто: кілька регіонів потенційно можуть мати одне і те ж значення в списку, ймовірність зростає, коли ми піднімаємося по ланцюжку.)
Будь-які пропозиції?
EDIT 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
Ось як виглядає файл ключ-значення:
mylocal=ca9c244aa1b40f39fd06318f2be9fbc1a82c5c5c
dev=986b747d846555f8c5e393a5cfbbd061ee9d68a7
int=53b8fa87f2241a17623ead2f94032b1d2045069e
reg=53b8fa87f2241a17623ead2f94032b1d2045069e
stage=
prod=
dr=
EDIT 2 Додано додаткові значення sha1sum у приклад файлу ключ-значення, щоб показати, як може існувати однакове значення для декількох ключів.