Note that exim contains tracker-specific configuration
[mirror/dsa-puppet.git] / modules / roles / README.static-mirroring.txt
1 For content which can be served via the Apache web server, possibly with a
2 custom configuration, Debian runs its static mirroring infrastructure. A key
3 advantage of that infrastructure is the higher availability it provides:
4 whereas individual virtual machines are power-cycled for scheduled maintenance
5 (e.g. kernel upgrades), static mirroring machines are removed from the DNS
6 entry static.debian.org during their maintenance.
7
8 The term static mirroring infrastructure includes:
9
10  • components, specifying the data source and other config options.
11    See modules/roles/misc/static-components.yaml
12  • a masterhost for each component, responsible only for distributing data,
13    not for serving data to end users.
14  • machines with the static_mirror role configured in hieradata/common.yaml
15  • a few scripts around rsync(1)
16
17 All of the above is managed via Puppet, for details see the files in
18 modules/roles/*/static-mirroring.
19
20 When data changes, the data source is responsible for running
21 static-update-component, which instructs the masterhost via SSH to run
22 static-master-update-component.
23
24 static-master-update-component transfers a new copy of the source data to the
25 masterhost using rsync(1) and, upon successful copy, swaps it with the current
26 copy.
27
28 The current copy on the masterhost is then distributed to all actual mirrors,
29 again placing a new copy alongside their current copy using rsync(1).
30
31 Once the data successfully made it to all mirrors, the mirrors are instructed
32 to swap the new copy with their current copy, at which point the updated data
33 will be served to end users.