Это решение, которое мы использовали:
Вся конфигурация локальных переменных была преобразована для использования системных свойств.
Имена системных свойств были разработаны следующим образом
${nodename}_${nodenumber}_${propertyname}
и каждый сервер имеет переменные, определенные для имени узла и номера узла в файле .profile.
Файл свойств определит все комбинации. Например: нам нужны были отдельные значения CONNECTION_COUNT, чтобы в файле свойств было 8 переменных (4 для QA и 3 для PROD)
PROD_1_MAX_CONNECTION_COUNT=15
PROD_2_MAX_CONNECTION_COUNT=15
PROD_3_MAX_CONNECTION_COUNT=20
QA_1_MAX_CONNECTION_COUNT=12
QA_2_MAX_CONNECTION_COUNT=6
QA_3_MAX_CONNECTION_COUNT=10
QA_4_MAX_CONNECTION_COUNT=16
Теперь на каждом сервере (QA или PROD) имя переменной создается с помощью переменных среды, определенных в файле .profile, и затем выбирается соответствующее свойство.
Это позволяет нам избавиться от любых локальных изменений на любом из узлов.