퍼펫 및 .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.