꼭두각시의 파일 콘텐츠에서 URL을 어떻게 만들 수 있나요?

StackOverflow https://stackoverflow.com//questions/22003181

  •  20-12-2019
  •  | 
  •  

문제

다음과 같은 URL에 최신 백업 타임스탬프를 저장하는 백업 스크립트가 있습니다. http://myaws.com/LATEST, 파일에는 타임스탬프를 나타내는 문자열(예: "201402230400")만 포함됩니다.동일한 스크립트가 실제 백업을 저장합니다. http://myaws.com/201402230400/mycompany-dump-201402230400.gz 그리고 http://myaws.com/201402230400/mycompany-data-201402230400.tgz.

문제는 해당 URL을 읽고 LATEST 타임스탬프 값을 기반으로 새 VM에 파일을 복원하는 꼭두각시 클래스를 만드는 것입니다.내가 놓치고 있는 것은 파일의 콘텐츠 저장소에서 URL을 어떻게 만들 수 있습니까?

  define download ($uri, $timeout = 300) {
    exec {
      "download $uri":
      path    => '/usr/bin',
      command => "wget --timestamping -q '$uri' -O $name",
      creates => $name,
      timeout => $timeout
    }
  }

  download {
    "$latest_file":
    uri => "http://myaws.com/LATEST",
    timeout => 900;
  }

  download {
    "$data_file":
    uri => "http://myaws.com/file($latest_file)/mycompany-data-file($latest_file).tgz",
    timeout => 900;
  }

호출 파일($최신_파일) 예상대로 작동하지 않습니다.내가 뭘 잘못하고 있는 걸까요?

도움이 되었습니까?

해결책

내 생각엔 당신이 사용하고 싶을 것 같아요 generate 최신 타임스탬프를 얻는 것보다 exec 사용자 정의 유형 내부.아마도 이와 같은 것입니다(형식을 변경해야 합니다). uri 다운로드도 가능합니다):

$latest_file = generate(
    '/usr/bin/curl',
    '-s',
    'http://myaws.com/LATEST'
)

define download ($uri, $timeout = 300) {
  exec {
    "download $uri":
      path    => '/usr/bin',
      command => "wget --timestamping -q '$uri' -O $name",
      creates => $name,
      timeout => $timeout
  }
}
download {
  "$data_file":
    uri => "http://myaws.com/${latest_file}/mycompany-data-${latest_file}.tgz",
    timeout => 900;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top