Как лучше всего систематически экспортировать список из 200 переменных среды всем пользователям в узле агента марионеток? - PullRequest
0 голосов
/ 24 июня 2019

У меня есть RPM, установкой которого я хочу управлять с помощью Puppet.Во время установки это зависит от значений 200 переменных среды, которые отличаются от системы к системе и могут меняться со временем.Каков наилучший способ продолжить?Лучше ли использовать шаблоны Hiera или ERB в Puppet для изменения и управления версиями среды?

Я новичок в Puppet, но получил некоторое представление о том, как это сделать.Я хочу знать наиболее эффективный способ экспорта такого большого количества переменных среды.

1 Ответ

2 голосов
/ 24 июня 2019

Ваша первая долгосрочная лучшая ставка - изменить упаковку RPM и / или само упакованное программное обеспечение таким образом, чтобы его установка была полностью независимой от любых переменных среды. Это, безусловно, норма, и все остальное глубоко проблематично для большинства, несмотря на куколку. Программное обеспечение может корректировать поведение во время выполнения так, как вам нравится, под воздействием переменных среды, но его установка должна быть нечувствительной к ним.

И все же я ожидаю, что вы отрицаете такую ​​возможность. В этом случае вы должны понимать, что независимо от того, как вы настраиваете систему для предоставления переменных среды в пользовательских сеансах, Puppet применяет хорошие методы обеспечения безопасности, контролируя среду запускаемых ею внешних команд, таких как команды управления пакетами. Поэтому вы не сможете использовать ресурс Package для управления (установкой) вашего RPM, если вам нужно влиять на его установку с помощью переменных среды.

Я бы порекомендовал использовать Puppet для управления сценарием установки RPM, который экспортирует все необходимые переменные среды, а затем запускает yum для установки RPM. Или, если необходимо, также управляйте локальной копией файла RPM, и ваш скрипт использует rpm для его установки. Если вам нужны переменные окружения только во время установки, они могут перейти прямо в скрипт; в противном случае вы, вероятно, захотите настроить их с помощью файлов установки среды в /etc/profile.d/software_name.sh и /etc/profile.d/software_name.csh. В любом случае, шаблон, будь то стиль ERB или EPP, был бы хорошим способом написать файл (ы), содержащий определения переменных среды. Затем используйте ресурс Exec для запуска сценария, когда это необходимо.

Иера - это отдельный вопрос. Обратите внимание, что обычно Hiera используется только на главном компьютере во время компиляции каталога, а не на клиентских компьютерах. Вы можете абсолютно хранить значения переменных среды во внешнем файле данных Hiera и просматривать их во время создания каталога. Я определенно рекомендовал бы это. В зависимости от того, как именно вы это настроите, это может сделать предложенные мной шаблоны намного проще. Например, вы можете передать шаблону хеш от имен переменных до значений переменных и выполнить итерацию по нему, чтобы выдать все необходимые определения переменных - намного лучше, чем 200 строк отдельных определений переменных и соответствующие 200 или более строк в файле манифеста .

...