2014-06-09 1 views
3

가 발행됩니다 :이 인형은 wget과 내가 설정에 wget을 호출하기 전에 프록시를 시도하고 프록시

file { "/etc/environment": 
    content => inline_template(" 
     http_proxy=http://10.0.12.13:8080 
     https_proxy=http://10.0.12.13:8080") 
} 

문제는 내가 제대로 환경을로드하기 위해 인형의 세션을 다시 시작해야한다는 것입니다.

나는 또한 간부 문에서 변수를 수출하는 것을 시도했다 :

exec { "proxy-export-vars": 
    provider => "shell", 
    command => "export http_proxy=http://10.0.12.13:8080 && export https_proxy=http://10.0.12.13:8080", 
} 

질문은 - 어떻게 세션을 다시 시작하고 꼭두각시 프로세스를 적용하지 않고 환경 설정 값을로드하려면?

업데이트

WGET puppet plugin

는 프록시 설정 검색 the top scope variables을 사용하고 있습니다. 그래서 트릭은이 변수를 노드 정의 앞에있는 the top scope에 정의하는 것입니다. 전체 작업 코드 :
$http_proxy = "http://10.0.12.13:8080" 
$https_proxy = "http://10.0.12.13:8080" 

node 'machine' { 

    # ... 
} 

그리고 WGET puppet plugin에 지금부터

는 이러한 프록시 설정으로 자원을 가져 오는 것입니다.

답변

3

exec 리소스에 대해 환경 변수를 설정하는 가장 쉬운 방법은 environment 속성을 사용하는 것입니다. 설명서 here을 참조하십시오. 예를 들어 : (A) export 쉘 때문에 실패

exec {'fetch something': 
    environment => [ 
    'http_proxy=http://10.0.12.13:8080', 
    'https_proxy=http://10.0.12.13:8080', 
    ], 
    command => '/usr/bin/wget -o /tmp/myfile http://myserver/myfile', 
} 

두 번째 시도 ...

exec { "proxy-export-vars": 
    provider => "shell", 
    command => "export http_proxy=http://10.0.12.13:8080 && export https_proxy=http://10.0.12.13:8080", 

... 내장이 된 명령, 그래서 꼭두각시 할 수 없을 것입니다 해당하는 바이너리가 없으므로 (b) 가능한 경우에도 과 같이 환경 변수를 설정하는 것이 바람직하지 않습니다. 단지 만 현재 프로세스에 영향을 미칩니다. 및 그것의 아이들.

+0

'export'는'provider => shell'에서도 작동 할 수 있지만 두 번째 포인트는 유지됩니다.이 값을 내보내는 셸은 즉시 종료됩니다. –

+0

'제공자'가 거기에 있다는 사실을 완전히 놓쳤습니다. 그 점을 지적 해 주셔서 감사합니다. – larsks

+0

Wget은 몇 가지 소프트웨어를 설치하는 다른 모듈에 의해 wget plugin을 통해 두 번 사용되기 때문에 좋지 않습니다. 각 명령에 대해 프록시를 설정해야합니다. 그러나 당신은 어떤 방향으로 나를 지적했다 - 나는 각 가져 오기 전에 프록시를 설정하기 위해 플러그인을 수정할 수 있는지 여부를 알아 내려고 할 것이다. – Cleankod

관련 문제