/ / Chef: Встановлення змінних середовища - шеф-кухар

Шеф-кухар: Встановлення змінних середовища - шеф-кухар

Мені потрібно встановити змінні середовища ОС на моєму комп'ютері Centos / 7.

Я спробував його використовувати на моєму variables.rb файл:

host = "locahost"
port = 9201

ENV["LV_ES_HOST"] = host
ENV["LV_ES_PORT"] = "#{port}"

Проте, на оболонці:

$ echo $LV_ES_HOST

$
  1. Як я можу встановити змінну середовища Os?
  2. Чи можна встановити змінну середовища ОС лише для користувача?

Мені потрібна змінна середовища, доступна для ОС, щоб мої додатки для джи були в змозі прочитати його значення.

Я працюю на декількох контейнерах на моєму комп'ютері, і програми працюють за необхідністю отримати змінну середовища LC_ES_HOST.

Відповіді:

1 для відповіді № 1

Інше питання насправді не пояснює основну проблему. Змінні середовища Unix успадковані від батьківського процесу до дочірнього процесу під час fork(). Таким чином, коли ви встановлюєте речі через ENV у вашому коді Шеф-кухар, він впливає на підпроцеси, які підпадають під Шеф як речі, що виконуються через execute ресурс. Коли ви входите через SSH, ваша оболонка не є підпроцесором chef-client так що ці змінні не є видимими. На жаль, Unix не має рішення загального призначення для глобальних змінних середовища, тому вам потрібно вибрати один з багатьох компромісів, які перераховані в іншому питанні.