Я хотел бы установить переменную среды в моих системах Linux, управляемую Puppet, чтобы она содержала имя текущей запущенной ветки, puppet's $environment
. Это должна быть переменная системного уровня из любого места и от любого пользователя системы - я стараюсь избегать любого дурачества с файловой системой, если это вообще возможно.
По сути, я хотел бы иметь возможность читать эту переменную в другом коде и включать ее в журналы, которые она создает.
В идеале я ищу кросс-платформенный ответ, но для CentOS / RedHat было бы отличным началом.
Изменить: я бы хотел избежать случайного файла в / etc /, который мне нужно читать каждый раз, когда я пишу строку в своем журнале.
Я подумал об использовании profile.d вскоре после публикации. Проблема в том, что многие службы не загружают профиль, и даже если я использую фрагмент, потребуется перечитать профиль, если я внесу изменения.
Стандартный способ сделать это - добавить файл /etc/profile.d/environment.sh
Содержащий
export VAR1=value1
Как вы сказали, некоторые службы (cron) не запускают оболочки входа в систему или не читают среду, их нужно делать по-другому.