1 # a mirror for archive.debian.org
2 # @param sslname provide rsync via ssl as well
3 # @param listen_addr IP addresses to have apache listen on
4 class roles::historical_mirror(
5 Optional[String] $sslname = undef,
6 Array[Stdlib::IP::Address] $listen_addr = [],
8 include roles::archvsync_base
11 include apache2::expires
13 $enclosed_addresses_rsync = empty($listen_addr) ? {
15 default => enclose_ipv6($listen_addr),
17 $_enclosed_addresses = empty($listen_addr) ? {
19 default => enclose_ipv6($listen_addr),
21 $vhost_listen = $_enclosed_addresses.map |$a| { "${a}:80" } .join(' ')
22 $mirror_basedir_prefix = hiera('role_config__mirrors.mirror_basedir_prefix')
23 $archive_root = "${mirror_basedir_prefix}debian-archive"
25 apache2::site { '010-archive.debian.org':
26 site => 'archive.debian.org',
27 content => template('roles/apache-archive.debian.org.erb'),
31 ssl::service { $sslname:
36 rsync::site { 'archive':
37 content => template('roles/historical_mirror/rsyncd.conf.erb'),
40 binds => $enclosed_addresses_rsync,
43 Ferm::Rule::Simple <<| tag == 'ssh::server::from::historical_master' |>>