2017-03-07 4 views
0

내 Centos/7 시스템에 OS 환경 변수를 설정해야합니다. 쉘에, 그럼에도 불구하고요리사 : 환경 변수 설정

host = 'locahost' 
port = 9201 

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

:

variables.rb 파일을 사용하여 시도했다

$ echo $LV_ES_HOST 

$ 
  1. 은 어떻게하는 OS 환경 변수를 설정할 수 있습니다?
  2. 사용자가 볼 수있는 OS 환경 변수를 설정할 수 있습니까?

제 jee 응용 프로그램이 해당 값을 읽을 수 있으려면 OS 사용 가능한 환경 변수가 필요합니다.

내 컴퓨터에서 여러 개의 jee 컨테이너를 실행 중이므로 응용 프로그램이 LC_ES_HOST 환경 변수를 가져와야합니다.

+4

[요리법을 사용하여 환경 변수를 설정하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/6284517/how-can-you-use-a-chef-recipe-to- 환경 변수 설정) – Tensibai

+0

사용자 환경 변수는 어떻습니까? 사용자가 어떤 환경 변수를 사용할 수 있는지 설정할 수 있다는 것을 기억합니다 ... – Jordi

+0

질문은 OS env var로 시작합니다. 하지만 각 사용자가 사용할 수있게됩니다. 데몬을 시작할 때 필요하다면 다른 방법이 있지만 대개 대상 응용 프로그램에 따라 다릅니다. – Tensibai

답변

1

다른 질문은 근본적인 문제를 실제로 설명하지 않습니다. UNIX 환경 변수는 fork() 동안 상위 프로세스에서 하위 프로세스로 상속됩니다. 따라서 요리사 코드에서 ENV을 통해 물건을 설정하면 요리사 아래에있는 execute 자원을 통해 실행되는 것과 같은 하위 프로세스에 영향을줍니다. 그러나 SSH를 통해 로그인 할 때 쉘은 서브 프로세스 chef-client이 아니므로 해당 변수가 표시되지 않습니다. 유감스럽게도 Unix에는 글로벌 환경 변수에 대한 범용 솔루션이 없으므로 여러 질문 중 하나를 선택해야합니다.이 질문은 다른 질문에 나열되어 있습니다.

+0

사용자 환경 변수는 어떻습니까? 사용자가 사용할 수있는 환경 변수를 설정할 수 있다는 것을 기억합니다 ... – Jordi

+0

해당 사용자의 쉘 ​​초기화 스크립트에서 사용자 별 변수를 홈 디렉토리에 설정해야합니다. – coderanger

+0

예, 그 의미였습니다. 그럼에도 불구하고 요리사를 사용하여 할 수 있습니까? – Jordi