system-config/modules/openstack_project/manifests/pypi_mirror.pp
Clark Boylan 22fdec77a2 Ensure the latest version of bandersnatch
Bandersnatch and pypi.python.org work together to ensure that they are
up to date with each others protocol changes. To make sure our mirrors
don't suddenly stop working due to a pypi update ensure we have the
latest bandersnatch at all times to accomodate pypi changes.

Change-Id: Ibb4d628e3c5df2805c0ea0687262350e638ef367
2015-03-24 12:50:29 -07:00

90 lines
2.0 KiB
Puppet

# == Class: openstack_project::pypi_mirror
#
class openstack_project::pypi_mirror (
$vhost_name,
$cron_frequency = '*/5',
) {
include apache
if ! defined(File['/srv/static']) {
file { '/srv/static':
ensure => directory,
}
}
file { '/srv/static/mirror':
ensure => directory,
owner => 'root',
group => 'root',
}
file { '/srv/static/mirror/web':
ensure => directory,
owner => 'root',
group => 'root',
require => File['/srv/static/mirror'],
}
apache::vhost { $vhost_name:
port => 80,
priority => '50',
docroot => '/srv/static/mirror/web',
require => File['/srv/static/mirror/web'],
}
file { '/srv/static/mirror/web/robots.txt':
ensure => present,
owner => 'root',
group => 'root',
mode => '0444',
source => 'puppet:///modules/openstack_project/disallow_robots.txt',
require => File['/srv/static/mirror/web'],
}
package { 'bandersnatch':
ensure => 'latest',
provider => 'pip',
}
file { '/etc/bandersnatch.conf':
ensure => present,
source => 'puppet:///modules/openstack_project/bandersnatch.conf',
}
file { '/var/log/bandersnatch':
ensure => directory,
}
file { '/var/run/bandersnatch':
ensure => directory,
}
cron { 'bandersnatch':
minute => $cron_frequency,
command => 'flock -n /var/run/bandersnatch/mirror.lock timeout -k 2m 30m run-bandersnatch >>/var/log/bandersnatch/mirror.log 2>&1',
environment => 'PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin',
}
include logrotate
logrotate::file { 'bandersnatch':
log => '/var/log/bandersnatch/mirror.log',
options => [
'compress',
'copytruncate',
'missingok',
'rotate 7',
'daily',
'notifempty',
],
}
file { '/usr/local/bin/run-bandersnatch':
ensure => present,
owner => 'root',
group => 'root',
mode => '0755',
source => 'puppet:///modules/openstack_project/run_bandersnatch.py',
}
}