X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Froles%2Fmanifests%2Fdebug_mirror.pp;h=dc69cff883a8a5c5e0c3a5fadd15bac728ecb7a7;hb=860adcc65aa0cf65c9a98a1529a8af15e8ee45b7;hp=94c73a57700f5e2a1e9f5d51152277cad6eceb0c;hpb=0f978b5d766ecb41aaabd0042c090138da96c04a;p=mirror%2Fdsa-puppet.git diff --git a/modules/roles/manifests/debug_mirror.pp b/modules/roles/manifests/debug_mirror.pp index 94c73a577..dc69cff88 100644 --- a/modules/roles/manifests/debug_mirror.pp +++ b/modules/roles/manifests/debug_mirror.pp @@ -1,29 +1,43 @@ class roles::debug_mirror { - $vhost_listen = $::hostname ? { - klecker => '130.89.148.14:80 [2001:610:1908:b000::148:14]:80', - mirror-isc => '149.20.20.22:80 [2001:4f8:8:36::1deb:22]:80', - default => '*:80', - } - $onion_v4_addr = $::hostname ? { - klecker => '130.89.148.14', - mirror-isc => '149.20.20.22', - default => undef, - } - - apache2::site { '010-debug.mirrors.debian.org': - site => 'debug.mirrors.debian.org', - content => template('roles/apache-debug.mirrors.debian.org.erb'), - } - - if has_role('static_mirror_onion') { - if ! $onion_v4_addr { - fail("Do not have an onion_v4_addr set for $::hostname.") - } - - onion::service { 'debug.mirrors.debian.org': - port => 80, - target_port => 80, - target_address => $onion_v4_addr, - } - } + include roles::archvsync_base + + $mirror_basedir_prefix = hiera('role_config__mirrors.mirror_basedir_prefix') + $archive_root = "${mirror_basedir_prefix}debian-debug" + + $listen_addresses = hiera('roles.debug_mirror') + .dig($::fqdn, 'listen-addresses') + .then |$a| { $a + [ '127.0.0.1:80', '[::1]:80' ] } + .lest || { ['*:80'] } + + $vhost_listen = join($listen_addresses, ' ') + $onion_v4_addr = hiera('roles.debug_mirror', {}) + .dig($::fqdn, 'onion_v4_address') + + apache2::site { '010-debug.mirrors.debian.org': + site => 'debug.mirrors.debian.org', + content => template('roles/apache-debug.mirrors.debian.org.erb'), + } + + if has_role('debug_mirror_onion') { + if ! $onion_v4_addr { + fail("Do not have an onion_v4_addr set for ${::hostname}.") + } + + onion::service { 'debug.mirrors.debian.org': + port => 80, + target_port => 80, + target_address => $onion_v4_addr, + } + } + + $hosts_to_check = hiera('roles.debug_mirror', {}) + .map |$h| { $h[1]['service-hostname'] } + roles::mirror_health { 'debug': + check_hosts => $hosts_to_check, + check_service => 'debug', + url => 'http://debug.backend.mirrors.debian.org/debian-debug/dists/sid-debug/Release', + health_url => 'http://debug.backend.mirrors.debian.org/_health', + } + + Ferm::Rule::Simple <<| tag == 'ssh::server::from::ftp_master' |>> }