Puppet exec 다운로드에서 프록시 환경 설정
Wget을 실행하는 exec 리소스에 환경 값을 설정하고, 다운로드에는 완료 파일 가드를 둡니다.
Puppet의 exec 리소스에는 environment 속성이 있습니다. 프록시 값은 다운로더를 호출하는 리소스에 두십시오:
file { '/var/cache/myapp':
ensure => directory,
}
exec { 'fetch-artifact':
provider => shell,
command => '/usr/bin/wget --tries=1 --timeout=20 -O /var/cache/myapp/artifact.part https://downloads.example.net/artifact-v1.bin && /usr/bin/mv /var/cache/myapp/artifact.part /var/cache/myapp/artifact-v1.bin',
environment => [
'http_proxy=http://proxy.example.net:8080',
'https_proxy=http://proxy.example.net:8080',
],
creates => '/var/cache/myapp/artifact-v1.bin',
require => File['/var/cache/myapp'],
}
예제는 Wget과 mv가 해당 경로에 있다고 가정합니다. 전송이 실패하면 임시 경로 이름이 남습니다. 최종 경로 이름은 Wget이 성공한 뒤에만 설치됩니다. 그다음 creates 가드는 완료된 버전 파일이 존재하는 동안 이후 실행을 건너뜁니다.
환경 배열은 Puppet이 이 명령을 실행할 때 값을 제공합니다. HTTP 프록시 목록의 HTTP 항목은 Wget에 구성되거나 보관된 프록시 자격 증명이 없을 때 허용된 공용 아티팩트 다운로드에 프록시 URL을 제공할 수 있습니다. 다른 exec 리소스가 수행하는 내보내기는 그 다른 프로세스와 그 하위 프로세스에서만 유효합니다. 두 리소스를 순서대로 배치해도 첫 번째의 셸 환경이 두 번째로 지속되지는 않습니다.
이 리소스의 환경은 리소스와 함께 유지하십시오. 다른 Puppet 작업은 머신 전체의 Wget 시작 파일을 바꾸지 않고 자체 구성된 경로를 사용할 수 있습니다.