Quick Start¶
Sync and Publish a Repo¶
The following command creates a new repository and sets its upstream feed URL to that of the Pulp Project’s own repository. When we later run a synchronize operation, the contents of the remote repository will be downloaded and stored in our new repository.
$ pulp-admin rpm repo create --repo-id=zoo --relative-url=zoo \
--feed=http://repos.fedorapeople.org/repos/pulp/pulp/demo_repos/zoo/
Successfully created repository [pulp]
- --repo-id is required and must be unique.
- --relative-url is optional and was used here to make the path to the repository friendlier.
- --feed is only required if you want to sync content from an external yum repository, which in this case we do.
Now let’s sync the repository, which downloads all of the packages from the remote repository and stores them in our new repository.
$ pulp-admin rpm repo sync run --repo-id=zoo
+----------------------------------------------------------------------+
Synchronizing Repository [zoo]
+----------------------------------------------------------------------+
This command may be exited via ctrl+c without affecting the request.
Downloading metadata...
[\]
... completed
Downloading repository content...
[==================================================] 100%
RPMs: 0/0 items
Delta RPMs: 0/0 items
... completed
Downloading distribution files...
[==================================================] 100%
Distributions: 0/0 items
... completed
Importing errata...
[-]
... completed
Importing package groups/categories...
[-]
... completed
Task Succeeded
Initializing repo metadata
[-]
... completed
Publishing Distribution files
[-]
... completed
Publishing RPMs
[==================================================] 100%
32 of 32 items
... completed
Publishing Delta RPMs
... skipped
Publishing Errata
[==================================================] 100%
4 of 4 items
... completed
Publishing Comps file
[==================================================] 100%
3 of 3 items
... completed
Publishing Metadata.
[-]
... completed
Closing repo metadata
[-]
... completed
Generating sqlite files
... skipped
Publishing files to web
[-]
... completed
Writing Listings File
[-]
... completed
Task Succeeded
Your repository is now available to browse at https://localhost/pulp/repos/pulp_beta/. (adjust the hostname as necessary)
Consumer Setup and Use¶
On a Pulp consumer, once you have completed the installation process, the next step is to register with the Pulp server. This allows the server to track what is installed on the consumer and initiate actions on the consumer, such as package install and system reboot.
Note
You must use login credentials for this command. Also note that this command must be run with root privileges.
$ sudo pulp-consumer register --consumer-id=con1
Enter password:
Consumer [con1] successfully registered
Now we can proceed with binding to a specific repository. Binding causes the Pulp repository to be setup on the consumer as a normal yum repository. Bound repositories are added to the file /etc/yum.repos.d/pulp.repo. Binding also allows the server to initiate the installation of packages from that repository onto the consumer. In this case, repository “zoo” has already been created on the Pulp server and contains packages.
$ pulp-consumer rpm bind --repo-id=zoo
Bind tasks successfully created:
Task Id: 44d64951-857a-4985-bfd9-dd6ead841065
Task Id: 14782cfa-bdb7-4307-b2b1-f1a0b4331d66
Note
The binding request is asynchronous and does not complete until the server has responded with binding information. This is why you see task IDs in the output above. That said, it happens very quickly and will almost certainly be done before you can type your next command.
At this point, the consumer is ready to install packages from the “zoo” repository. Let’s initiate a package install from the server.
$ pulp-admin rpm consumer package install run --consumer-id=con1 -n wolf
Install task created with id [ c89d4578-cb4e-451f-a87a-63272e77670e ]
This command may be exited via ctrl+c without affecting the request.
Refresh Repository Metadata [ OK ]
Downloading Packages [ OK ]
Check Package Signatures [ OK ]
Running Test Transaction [ OK ]
Running Transaction [ OK ]
Install Succeeded
+----------------------------------------------------------------------+
Installed
+----------------------------------------------------------------------+
Name: wolf
Version: 9.4
Arch: noarch
Repoid: zoo
Now the package “wolf” is installed on the consumer, and you can verify this by running yum info wolf on the consumer.
Next Steps¶
This guide documents features and concepts that are specific to RPM support. The Pulp User Guide has much more information about how to perform common operations like search repositories, copy packages from one repository to another, etc.
Please check out the Recipes section for more advanced use cases.