class reprepro( $origin = $::domain, $uploaders = '', $basedir = '/srv/reprepro' ) { case $uploaders { '': { fail("You need the repository uploaders! Please pass \$uploaders parameter") } } case $::lsbdistcodename { etch: { package { "reprepro": ensure => '3.9.2-1~bpo40+1'; } } default: { package { "reprepro": ensure => 'installed'; } } } user { "reprepro": ensure => "present", home => "${basedir}", gid => "reprepro", password => "*", comment => "reprepro sandbox", require => Group["reprepro"], } group { "reprepro": ensure => present, } file { "${basedir}": ensure => directory, mode => 0771, owner => reprepro, group => reprepro; "${basedir}/conf": ensure => directory, mode => 0770, owner => root, group => reprepro; "${basedir}/db": ensure => directory, mode => 0770, owner => reprepro, group => reprepro; "${basedir}/dists": ensure => directory, mode => 0775, owner => reprepro, group => reprepro; "${basedir}/pool": ensure => directory, mode => 0775, owner => reprepro, group => reprepro; "${basedir}/incoming": ensure => directory, mode => 1777, owner => reprepro, group => reprepro; "${basedir}/logs": ensure => directory, mode => 0775, owner => reprepro, group => reprepro; "${basedir}/tmp": ensure => directory, mode => 0775, owner => reprepro, group => reprepro; "${basedir}/conf/distributions": mode => 0664, owner => root, group => reprepro, content => template("reprepro/distributions.erb"); "${basedir}/conf/uploaders": mode => 0660, owner => root, group => reprepro, content => template("reprepro/uploaders.erb"); "${basedir}/conf/incoming": mode => 0664, owner => root, group => reprepro, source => "puppet://$server/modules/reprepro/incoming"; "${basedir}/index.html": mode => 0664, owner => root, group => reprepro, content => template("reprepro/index.html.erb"); "${basedir}/.gnupg": mode => 700, owner => reprepro, group => reprepro, ensure => directory; "${basedir}/.gnupg/secring.gpg": mode => 600, owner => reprepro, group => reprepro, ensure => present; "/usr/local/bin/reprepro-export-key": ensure => present, content => template('reprepro/reprepro-export-key.sh.erb'), owner => root, group => root, mode => 755, } exec { "reprepro -b ${basedir} createsymlinks": command => "/usr/bin/reprepro -b ${basedir} --delete createsymlinks", refreshonly => true, subscribe => File["${basedir}/conf/distributions"], user => reprepro, path => "/usr/bin:/bin"; "reprepro -b ${basedir} export": command => "/usbr/bin/reprepro -b ${basedir} export", refreshonly => true, user => reprepro, subscribe => File["${basedir}/conf/distributions"], path => "/usr/bin:/bin"; "/usr/local/bin/reprepro-export-key": creates => "${basedir}/key.asc", user => reprepro, require => File["/usr/local/bin/reprepro-export-key"]; "/usr/local/bin/reprepro-export-key-update": command => "/usr/local/bin/reprepro-export-key", user => reprepro, subscribe => File["${basedir}/.gnupg/secring.gpg"], require => File["/usr/local/bin/reprepro-export-key"], refreshonly => true, } # TODO: setup needeed lines in apache site config file }