퍼펫 및 .deb 파일을 사용하여 패키지를 업데이트하는 방법


27

로컬 소스 deb 파일에서 꼭두각시를 사용하여 deb 패키지를 업데이트 / 업그레이드하는 올바른 방법을 찾으려고합니다. 내 현재 설정은 다음과 같습니다 ...

class adobe-air-2-0-4 {

  file { "/opt/air-debs":
    ensure => directory
  }

  file { "/opt/air-debs/adobeair-2.0.4.deb":
    owner   => root,
    group   => root,
    mode    => 644,
    ensure  => present,
    source  => "puppet://puppet/adobe-air-2-0-4/adobeair-2.0.4.deb"
  }

  package { "adobeair":
    provider => dpkg,
    ensure => installed,
    source => "/opt/air-debs/adobeair-2.0.4.deb"
  }

}

먼저 deb 파일을 클라이언트 컴퓨터로 복사 한 다음 공급자가 'dpkg'로 설정된 상태에서 'package'를 사용합니다. 이것은 작동하며 올바른 버전이 설치되어 있습니다.

내 질문은 나중에이 패키지를 업데이트하는 올바른 방법은 무엇입니까? 소스 파일을 간단히 변경하면 꼭두각시가 다른 버전임을 알고이 패키지를 업데이트 할 수 있습니까? 퍼펫은 소스 deb 파일의 버전과 설치 한 패키지의 버전을 어떻게 결정합니까?

나는 꼭두각시를 처음 접했으므로 기존 구성을 개선하기위한 제안이 있으면 대단히 감사합니다.

답변:


36

나는 또한이 질문을 꼭두각시 사용자 그룹에 올렸는데 이것은 내가받은 응답이었습니다.

최신 버전 을 추가 하면 현재 설치된 패키지와 비교하여 소스 파일을 확인하고 최신 버전 인 경우 새 파일을 설치합니다. 여전히 이전 버전으로 롤백하는 방법을 모르겠지만 지금은 내 문제를 해결하는 것 같습니다.

package { "puppet-dashboard":
 provider => dpkg,
 ensure   => latest,
 source   => "/tmp/puppet-dashboard_1.0.4rc2-1_all.deb"
}

꼭두각시 사용자 그룹 게시물에 대한 링크는 다음과 같습니다 ... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f


테스트하지는 않았지만 apt를 공급자로 사용하는 경우 예를 들면 - 당신의 버전 번호 문자열에 최신을 변경할 수 있습니다 => '1.0.4rc2-1_all을'확인
benlumley

docs.puppetlabs.com/references/latest/type.html#package 를 확인한 후 위의 권장 사항이 유효하지 않은 것으로 보입니다. dpkg는 버전을 지정할 수 없습니다.
benlumley

글쎄, @benlumley, apt-get은 버전을 지정할 수 있으며 dpkg (apt-get의 기반이되는)는 아닙니다. 따라서 그런 버전을 만들고 싶을 때 두 가지를 혼합하는 것은 어렵습니다. 그렇기 때문에 이런 경우 미니 저장소를 설정하고 관리하는 것이 좋습니다 (데비안 시스템의 기본 공급자)
Aktau
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.