Story #1759
Updated by dkliban@redhat.com over 8 years ago
Pulp users often want to make content available from multiple web servers. This is beneficial in situations where content needs to be highly available or the same content needs to be available in different geographic locations. +*Summary*+ The rsync distributor enables the user rsync_distributor will afford users of RPM's yum_distributor to publish a portion or all of repositories published by the content yum_distributor to any server that supports key based ssh communication. The rsync_distributor will limit the units published by only publishing units associated with a the repository to a remote server. Each plugin has its own implementation before the date of the rsync distributor. Even though last publish of the rsync distributor can be used by itself, it is most useful when used in conjunction with other distributors. When used in conjunction with other distributors, rsync can be both a predistributor or postdistributor. yum_distributor. The predistributor is used to perform the initial publish order of a repository. The postdistributor performs the second phase of the publish. *+How rsync postdistributor works publishes for RPM plugin+* Docker will be different. The rsync rsync_distributor will first publish consists of 4 steps: content units query, content units publish, symlinks to content units publish, extra data publish. The only predistributor supported by any server that supports key based ssh communication. Then the RPM rsync postdistributor is the yum_distributor. When performing a web_distributor will publish with the rsync postdistributor, only content that has already been published by metadata about the yum_distributor is published. +Units selected for publish+ By default, rsync distributor publishes in fast-forward mode. In this mode, only content units that were associated with to some other web servers. The rsync_distributor [for docker] will have an optional configuration option to 'update_web_distributor'. When set to True, the repository after the last rsync publish and before will update the last yum_distributor publish are selected for publishing. If the yum_distributor performed a non-fastforward publish, the rsync distributor selects all units 'web_distributor' associated with the repository before same repository. The update will set the yum_distributor publish. If the previous publish with the rsync distributor failed, the rsync distributor selects all units ssociated with the repository before the yum_distributor's last publish date. +Symlinks are created+ Once units are selected for transfer web_distributor's 'end_date' to the remote server, a relative symlink is created for each unit inside start time of the worker's working directory. E.g. /var/cache/pulp/worker1/taskuuid/.relative +Content is rsynced to the remote server+ Files from /var/lib/content backing content rsync_distributor's publish. This will limit which units selected earlier are transferred to published by the remote server. Each type of unit is transferred to /<remote_root>/content/origin/<type>/ directory on the remote server. +Symlinks rsynced to the remote server+ All the symlinks web_distributor as described in #1887. This will prevent Pulp from previous step are transferred to the remote server. +Repo publishing docker metadata rsynced to for units that have not yet been published by the remote server+ The content of repodata directory is transferred to the remote server. *+How rsync postdistributor works for Docker plugin+* rsync_distributor.