From 377e095431afc89b6e3bb4cc9abd2d1508a042b0 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Mon, 29 Sep 2008 13:39:18 -0400 Subject: add the preseeded_package define which simplifies apt preseeding automatically making sure that the preseeding directories are present and pulling the seed file from templates/$debian_version/$name.seeds which enables you to define things such as: apt::preseeded_package { [ locales, popularity-contest, apt-listchanges, apticron]: } and the .seed files will be automatically pulled and populated --- manifests/init.pp | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/manifests/init.pp b/manifests/init.pp index 3128a92..77d5a7f 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -133,8 +133,55 @@ class apt { } } } -} + + # workaround for preseeded_package component + file { "/var/cache": ensure => directory } + file { "/var/cache/local": ensure => directory } + file { "/var/cache/local/preseeding/": ensure => directory } + + define preseeded_package ($content = "", $ensure = "installed") { + $seedfile = "/var/cache/local/preseeding/$name.seeds" + $real_content = $content ? { + "" => template ( "$debian_version/$name.seeds" ), + Default => $content + } + + file{ $seedfile: + content => $real_content, + mode => 0600, owner => root, group => root, + } + + package { $name: + ensure => $ensure, + responsefile => $seedfile, + require => File[$seedfile], + } + } + + # workaround for preseeded_package component + file { "/var/cache": ensure => directory } + file { "/var/cache/local": ensure => directory } + file { "/var/cache/local/preseeding/": ensure => directory } + define preseeded_package ($content = "", $ensure = "installed") { + $seedfile = "/var/cache/local/preseeding/$name.seeds" + $real_content = $content ? { + "" => template ( "$debian_version/$name.seeds" ), + Default => $content + } + + file{ $seedfile: + content => $real_content, + mode => 0600, owner => root, group => root, + } + + package { $name: + ensure => $ensure, + responsefile => $seedfile, + require => File[$seedfile], + } + } +} class dselect { # suppress annoying help texts of dselect -- cgit v1.2.3