Cara memperbarui paket menggunakan boneka dan file deb

27

Saya mencoba mencari cara yang tepat untuk memperbarui / meningkatkan paket deb menggunakan boneka dari file deb sumber lokal. Konfigurasi saya saat ini terlihat seperti ini ...

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"
  }

}

Saya pertama-tama menyalin file deb ke mesin klien dan kemudian menggunakan 'paket' dengan penyedia diatur ke 'dpkg'. Ini berfungsi dan saya mendapatkan versi yang benar diinstal.

Pertanyaan saya adalah apa cara yang tepat untuk memperbarui paket ini di masa depan. Bisakah saya cukup mengganti file sumber dan boneka akan tahu bahwa ini adalah versi yang berbeda dan memperbarui paket ini? Bagaimana wayang menentukan versi paket apa yang telah diinstal versus versi file deb sumber?

Saya cukup baru untuk boneka, jadi jika Anda memiliki saran untuk perbaikan konfigurasi saya yang ada, mereka sangat dihargai.

delux247
sumber

Jawaban:

36

Saya juga memposting pertanyaan ini pada kelompok pengguna boneka dan ini adalah jawaban yang saya dapatkan kembali.

Jika Anda menambahkan pastikan terbaru itu akan memeriksa file sumber terhadap paket yang saat ini diinstal dan menginstal yang baru jika itu terbaru. Saya masih tidak yakin bagaimana Anda akan memutar kembali ke versi yang lebih lama, tetapi ini tampaknya menyelesaikan masalah saya untuk saat ini.

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

Berikut ini tautan ke pos grup pengguna boneka ... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f

delux247
sumber
Tidak diuji, tetapi jika menggunakan apt sebagai penyedia. Anda dapat mengubah terbaru ke sebuah string dengan nomor versi di - misalnya: pastikan => '1.0.4rc2-1_all'
benlumley
Setelah memeriksa docs.puppetlabs.com/references/latest/type.html#package - sepertinya pujian saya di atas tidak valid, dikatakan dpkg tidak dapat diversi.
benlumley
Nah, @benlumley, apt-get adalah versi dan dpkg (yang menjadi dasar apt-get) tidak. Jadi agak sulit untuk menggabungkan keduanya ketika Anda ingin versi seperti itu. Itu sebabnya dalam kasus-kasus ini bisa menjadi ide bagus untuk menyiapkan repositori mini dan mengaturnya (yang merupakan penyedia default pada sistem debian)
Aktau