From cead6de02810f62af1f679363843bb3444f11425 Mon Sep 17 00:00:00 2001 From: Paul Wise Date: Fri, 31 May 2019 11:52:21 +0800 Subject: [PATCH] Store the list of installed packages into a puppet fact --- modules/debian_org/files/apt.conf.d/local-pkglist | 6 ++++++ modules/debian_org/lib/facter/pkglist.rb | 9 +++++++++ modules/debian_org/manifests/apt.pp | 8 ++++++++ 3 files changed, 23 insertions(+) create mode 100644 modules/debian_org/files/apt.conf.d/local-pkglist create mode 100644 modules/debian_org/lib/facter/pkglist.rb diff --git a/modules/debian_org/files/apt.conf.d/local-pkglist b/modules/debian_org/files/apt.conf.d/local-pkglist new file mode 100644 index 000000000..4cf907c99 --- /dev/null +++ b/modules/debian_org/files/apt.conf.d/local-pkglist @@ -0,0 +1,6 @@ +// +// THIS FILE IS UNDER PUPPET CONTROL. DON'T EDIT IT HERE. +// USE: git clone git+ssh://$USER@puppet.debian.org/srv/puppet.debian.org/git/dsa-puppet.git +// + +DPkg::Post-Invoke { "cd /var/lib/misc/thishost/ ; dpkg-query -W -f '${Package}\n' > pkglist.tmp ; mv pkglist.tmp pkglist"; }; diff --git a/modules/debian_org/lib/facter/pkglist.rb b/modules/debian_org/lib/facter/pkglist.rb new file mode 100644 index 000000000..2609d4073 --- /dev/null +++ b/modules/debian_org/lib/facter/pkglist.rb @@ -0,0 +1,9 @@ +pkglist = '/var/lib/misc/thishost/pkglist' + +if FileTest.exist?(pkglist) + Facter.add('pkglist') do + setcode do + open(pkglist).read().split("\n").join(' ') + end + end +end diff --git a/modules/debian_org/manifests/apt.pp b/modules/debian_org/manifests/apt.pp index 62feca2f4..d52005f80 100644 --- a/modules/debian_org/manifests/apt.pp +++ b/modules/debian_org/manifests/apt.pp @@ -132,6 +132,14 @@ class debian_org::apt { file { '/etc/apt/apt.conf.d/local-cainfo': source => 'puppet:///modules/debian_org/apt.conf.d/local-cainfo', } + file { '/etc/apt/apt.conf.d/local-pkglist': + source => 'puppet:///modules/debian_org/apt.conf.d/local-pkglist', + } + + exec { 'dpkg list': + command => 'dpkg-query -W -f \'${Package}\n\' > /var/lib/misc/thishost/pkglist', + creates => '/var/lib/misc/thishost/pkglist', + } exec { 'apt-get update': path => '/usr/bin:/usr/sbin:/bin:/sbin', -- 2.20.1