The last piece that is needed is a tool that can create the
tree that we want to synchronize out to the mirrors. The mirrors only
need to carry manifests and blobs, so the tool needs only to pull these
documents out of the registry that Adam Miller has set up and write them
to disk in a particular structure. For optimization, we could use
hardlinks for blobs that are common across the various images (for
example, the Fedora base blob will be the same in all images) to save
rsync time and mirror disk space.
Additionally, we will need a playbook to run this new tool in response
to fedmsgs. We may be able to use Adam Miller's loopabull project to run
such a playbook at the right times.
You can also look at the simples fedmsg-consumers we already have that are
running ansible playbook:
Note that it will require a change in the sudoers file to allow the process to
call the playbook (and you cannot specify arguments to the command as that will
break the configuration to the sudoers file).