วิธีอัปเดตแพคเกจโดยใช้หุ่นเชิดและไฟล์. 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 ลงในเครื่องไคลเอนต์แล้วใช้ 'package' กับผู้ให้บริการตั้งเป็น 'dpkg' มันใช้งานได้และฉันได้รับรุ่นที่ถูกต้อง

คำถามของฉันคือวิธีที่เหมาะสมในการอัปเดตแพ็คเกจนี้ในอนาคต ฉันสามารถเปลี่ยนไฟล์ต้นฉบับและหุ่นเชิดจะรู้ว่าเป็นรุ่นอื่นและอัปเดตแพ็คเกจนี้หรือไม่ หุ่นเชิดจะตรวจสอบเวอร์ชันของแพ็คเกจที่ติดตั้งกับรุ่นของไฟล์ 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 เป็น versionable และ dpkg (ที่ apt-get อิง) ไม่ได้เป็น ดังนั้นจึงเป็นการยากที่จะผสมทั้งสองเมื่อคุณต้องการรุ่นเช่นนั้น ด้วยเหตุนี้ในกรณีเหล่านี้จึงเป็นความคิดที่ดีที่จะติดตั้ง mini-repository และจัดการ apt-get มัน (ซึ่งเป็นผู้ให้บริการเริ่มต้นสำหรับระบบ debian)
Aktau
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.