0

Предположим, у меня есть кричащий конвейер CI и CD, построенный с использованием инструментов, упомянутых в заголовке вопроса.Что такое хорошее решение для хранения переменных в синхронизации - Terraform, Chef, Jenkins, Octopus Deploy

Давайте также скажем, что есть файлы конфигурации и другие вещи, которые параметризуются переменными во всех этих системах. Переменные, которые, по сути, иногда должны соответствовать всем им. Хосты, порты, строки подключения и т. Д.

Как я могу или какие инструменты доступны, чтобы сохранить эти переменные в одном месте или, по крайней мере, убедиться, что они остаются в синхронизации друг с другом, когда им это нужно к?

Мое лучшее мышление до сих пор заключается в написании некоторых автоматизированных тестов, но поскольку переменные обычно хранятся в самих системах, это кажется немного неуклюжим. Я мог хранить переменные в большей конфигурации в источнике, но некоторые из них являются безопасными переменными (производственными паролями и т. Д.), И это тоже было бы компромиссом.

Есть тонна этих переменных, и я вижу, что это становится реальной проблемой, тем больше я спускаюсь по этой дороге.

Кто-нибудь еще это решил?

+0

Отключена ли ваша конфигурация от вашего программного обеспечения? Или вы готовите конфигурацию непосредственно в свои двоичные файлы без возможности их изменения позже в конвейере CI/CD? – Bricktop

+0

Конфигурация помечена в файлах конфигурации. – Stimul8d

+0

Это звучит как хороший пример использования для чего-то вроде Consul - https://www.consul.io/. Вы могли бы решить как вашу проблему с синхронизацией, так и хранение защищенных переменных. –

ответ

3

Ваша система управления конфигурацией (шеф-повар) должна отвечать за переброску всех переменных в вашу систему CI. Территориальное состояние и другие базы данных должны сохраняться отдельно, но ваша система CM должна информировать другие инструменты «где находится база данных для текущей работы».

Существует множество различных и разумных способов проверки переменных на разных уровнях: например, шеф-повар пытается переместить его на время сборки, но самое главное, что вы можете сделать, это попытаться и свести к минимуму различия между средами. Многие люди начинают с чистой серии этапов развертывания, а затем три года спустя каждый из них настолько дикий, шершавый и странный, что этапы потеряли большую часть своей полезности. Являясь последовательным сторонником «все одно и то же везде, хотя оно сложнее и дороже», является жизненно важной политической работой.