puppet/apt/manifests/init.pp
2010-11-09 15:57:17 +02:00

126 lines
2.7 KiB
Puppet

class apt {
file { "/var/cache/apt/local-archives":
ensure => directory,
mode => 0755,
owner => root,
group => root,
}
}
# Install apt-cacher server
#
class apt::cacher {
package { "apt-cacher":
ensure => installed,
}
augeas { "apt-cacher-autostart":
context => "/files/etc/default/apt-cacher",
changes => ["set AUTOSTART 1"],
require => Package["apt-cacher"],
}
service { "apt-cacher":
ensure => running,
enable => true,
require => Package["apt-cacher"],
}
}
# Mirroring tool for apt repositories
#
# === Global variables
#
# $aptmirror_threads:
# Number of download threads to use, defaults to 5.
#
# $aptmirror_server:
# Server to use for mirroring, defaults to
# http://archive.ubuntu.com/ubuntu
#
# $aptmirror_list:
# List of Ubuntu versions to mirror, defaults to [ "lucid" ].
#
class apt::mirror {
if ! $aptmirror_threads {
$aptmirror_threads = 10
}
if ! $aptmirror_server {
$aptmirror_server = "http://archive.ubuntu.com/ubuntu"
}
if ! $aptmirror_list {
$aptmirror_list = [ "lucid" ]
}
package { "apt-mirror":
ensure => installed,
}
file { "/etc/apt/miror.list":
ensure => present,
name => $operatingsystem ? {
centos => "/etc/apt-mirror.list",
default => "/etc/apt/miror.list",
},
content => template("apt/mirror.list.erb"),
mode => 0644,
owner => root,
group => root,
require => Package["apt-mirror"],
}
}
# Install .deb package.
#
# === Parameters
#
# $name:
# Package name.
# $ensure:
# Ensure package is absent or installed.
# $source:
# Source URL to .deb file.
#
# === Sample usage
#
# apt::package { "python-igraph":
# ensure => installed,
# source => "http://cneurocvs.rmki.kfki.hu/packages/binary/python-igraph_0.5.2_i386.deb",
# }
#
define apt::package($ensure, $source) {
include apt
$filename = regsubst($source, '.*/([^/]+)$', '\1')
custom::file { "/var/cache/apt/local-archives/${filename}":
ensure => $ensure ? {
installed => present,
default => absent,
},
source => $source,
mode => 0644,
owner => root,
group => root,
require => File["/var/cache/apt/local-archives"],
}
package { "${name}":
ensure => $ensure,
source => "/var/cache/apt/local-archives/${filename}",
provider => dpkg,
require => Custom::File["/var/cache/apt/local-archives/${filename}"],
}
}