]> gitweb.fluxo.info Git - puppet-apt.git/commitdiff
add refactored files
authormh <mh@immerda.ch>
Fri, 30 Oct 2009 19:20:42 +0000 (20:20 +0100)
committermh <mh@immerda.ch>
Fri, 30 Oct 2009 19:20:42 +0000 (20:20 +0100)
manifests/default_preferences.pp [new file with mode: 0644]
manifests/default_sources_list.pp [new file with mode: 0644]
manifests/dselect.pp [new file with mode: 0644]
manifests/preseeded_package.pp [new file with mode: 0644]
manifests/upgrade_package.pp [new file with mode: 0644]

diff --git a/manifests/default_preferences.pp b/manifests/default_preferences.pp
new file mode 100644 (file)
index 0000000..659474f
--- /dev/null
@@ -0,0 +1,16 @@
+class apt::default_preferences {
+  config_file {
+    # this just pins unstable and testing to very low values
+    "/etc/apt/preferences":
+      content => template("apt/preferences.erb"),
+      # use File[apt_config] to reference a completed configuration
+      # See "The Puppet Semaphor" 2007-06-25 on the puppet-users ML
+      alias => apt_config,
+      # only update together
+      require => File["/etc/apt/sources.list"];
+    # little default settings which keep the system sane
+    "/etc/apt/apt.conf.d/from_puppet":
+      content => "APT::Get::Show-Upgraded true;\nDSelect::Clean $real_apt_clean;\n",
+      before => File[apt_config];
+  }
+}
diff --git a/manifests/default_sources_list.pp b/manifests/default_sources_list.pp
new file mode 100644 (file)
index 0000000..8c14b53
--- /dev/null
@@ -0,0 +1,10 @@
+class apt::default_sources_list {
+  config_file {
+    # include main, security and backports
+    # additional sources could be included via an array
+    "/etc/apt/sources.list":
+      content => template("apt/sources.list.erb"),
+      require => Exec[assert_lsbdistcodename];
+  }
+}
+
diff --git a/manifests/dselect.pp b/manifests/dselect.pp
new file mode 100644 (file)
index 0000000..fb138da
--- /dev/null
@@ -0,0 +1,10 @@
+class apt::dselect {
+  # suppress annoying help texts of dselect
+  line { dselect_expert:
+      file => "/etc/dpkg/dselect.cfg",
+      line => "expert",
+      ensure => present,
+  }
+
+  package { dselect: ensure => installed }
+}
diff --git a/manifests/preseeded_package.pp b/manifests/preseeded_package.pp
new file mode 100644 (file)
index 0000000..276c90f
--- /dev/null
@@ -0,0 +1,18 @@
+define apt::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],
+  }   
+}  
diff --git a/manifests/upgrade_package.pp b/manifests/upgrade_package.pp
new file mode 100644 (file)
index 0000000..41d5d52
--- /dev/null
@@ -0,0 +1,19 @@
+define apt::upgrade_package ($version = "") {
+  case $version {
+    '': {
+      exec { "aptitude -y install $name":
+        onlyif => [ "grep-status -F Status installed -a -P $name -q", "apt-show-versions -u $name | grep -q upgradeable" ],
+      }
+    }
+    'latest': {
+      exec { "aptitude -y install $name":
+        onlyif => [ "grep-status -F Status installed -a -P $name -q", "apt-show-versions -u $name | grep -q upgradeable" ],
+      }
+    }
+    default: {
+      exec { "aptitude -y install $name=$version":
+        onlyif => [ "grep-status -F Status installed -a -P $name -q", "apt-show-versions -u $name | grep -q upgradeable" ],
+      }
+    }
+  }
+}