вторник, 9 апреля 2013 г.

[PUPPET] Ставим пакеты из backports

Возникла необходимость поставить пакет из бекпортов через apt-get с помощью паппета.
Для этого необходимо проделать примерно следующее (кусок манифеста из рабочего проекта)

class collectd {
# directories and filenames setup
    $apt_sources_dir = '/etc/apt/sources.list.d'
    $apt_sources_file = 'backports.list'

    file { "{$apt_sources_dir}/{$apt_sources_file}":
        ensure    => file,
        content    => 'deb http://backports.debian.org/debian-backports squeeze-backports main',
    }
#
    exec { "apt-get update":
        command => "/usr/bin/apt-get update",
        onlyif => "/bin/sh -c '[ ! -f /var/cache/apt/pkgcache.bin ] || /usr/bin/find /etc/apt/* -cnewer /var/cache/apt/pkgcache.bin | /bin/grep . > /dev/null'",
    }
# installing package
    package { "collectd-core/squeeze-backports":
        ensure => "latest",
        require => Exec['apt-get update'],
    }
}