Project

Profile

Help

Story #1759

closed

Story #1990: Rsync distributor

As a user, I can use rsync distributor to publish RPM repositores

Added by moegyver over 8 years ago. Updated over 5 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

100%

Estimated time:
Platform Release:
2.10.0
Groomed:
Yes
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Sprint 5
Quarter:

Description

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 to publish a portion or all of the content units associated with a repository to a remote server.

Each plugin has its own implementation of the rsync distributor. The RPM rsync distributor has to be used in conjunction with yum_distributor as its predistributor.

The predistributor is used to perform the initial publish of a repository. The postdistributor performs the second phase of the publish.

How rsync postdistributor works for RPM plugin

The rsync publish consists of 4 steps: content units query, content units publish, symlinks to content units publish, extra data publish.

The only predistributor supported by the RPM rsync postdistributor is the yum_distributor. When performing a publish with the rsync postdistributor, only content that has already been published by 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 the repository after the last rsync publish and before the last yum_distributor publish are selected for publishing.

If the yum_distributor performed a non-fastforward publish, the rsync distributor selects all units associated with the repository before 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 to the remote server, a relative symlink is created for each unit inside 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 units selected earlier are transferred to 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 from previous step are transferred to the remote server.

Repo metadata rsynced to the remote server

The content of repodata directory is transferred to the remote server.

How rsync postdistributor works for Docker plugin


Files

rpm_rsync_test_plan.txt (7.27 KB) rpm_rsync_test_plan.txt bmbouter, 08/02/2016 06:07 PM

Also available in: Atom PDF