Pulp Consumer Client

Introduction

The pulp-consumer script is used by a system to become a Pulp consumer. A consumer is essentially a system that uses Pulp for repository binding and package profile tracking.

All commands are issued by passing the command string to the pulp-consumer script. For example, to display the consumer's history, the consumer history command is run:

$ pulp-consumer consumer history

Arguments to a command are specified after the command and begin with --. All commands support the --help argument to display more information on the possible arguments supported:

$ pulp-consumer consumer register --help

The pulp-consumer script must be run as root due to the fact that it creates and manages yum repository files.


Configuration

Configuration for the pulp-consumer script is done through the /etc/pulp/consumer/consumer.conf file. The configuration options are divided into the following sections:

Server

The following options control the communications from consumer to Pulp server.

Name Description
host Fully qualified hostname of the Pulp server. In addition to being used to find the server itself, this is also used to verify the server's SSL certificate. As such, this cannot simply be the IP of the Pulp server and must be the hostname configured in the server's SSL certificate.
port Port on which the Pulp server API is hosted. The default is 443 (HTTPS) and will likely not need to be changed.
scheme Currently, only https is supported.
interval Frequency in minutes at which the package profile is sent to the server.

Client Configuration

The following control the behavior of the client and the operations it performs.

Name Description
reboot_schedule Time in minutes or 'now' before system is scheduled for reboot when user requests a reboot for applicable errata.
assumeyes Default: true. If true, when a package is remotely installed by a Pulp user through pulp-admin that requires a reboot as part of the installation the reboot will automatically take place.

Pulp Agent

To support Pulp command & control, Pulp provides a light weight agent. The agent is included in the pulp-consumer package and is installed as a service. The pulp-agent service should be configured to start automatically.

# chkconfig pulp-agent on

CDS

The following control the locations of content served by the Pulp server. In most cases, only the host portion of the URLs should need to be changed.

Name Description
baseurl Base URL of repositories served by the Pulp server.
keyurl URL where repository GPG public keys are accessible.
ksurl URL where kickstart information can be accessed.

Registration

Registration

In order to use a system as a consumer of a Pulp server, it must be registered against the server. Registration is done through the `consumer register` command. When a consumer is registered, it provides a unique (to the Pulp server) ID to identify itself. For example, to register a consumer with the ID "example", the following command would be used:

$ pulp-consumer consumer register --id example

The following attributes can be specified at consumer registration (all attributes are optional unless otherwise specified).

Name Flag Description
ID --id Required. Uniquely identifies this consumer in the Pulp server.
Description --description Optional text to describe the consumer; this is displayed when using pulp-admin to view consumer information.

Unregistration

A consumer can opt to remove its relationship with a Pulp server using the consumer unregister command. There are no arguments to the command, it is simply called on a previously-registered consumer:

$ pulp-consumer consumer unregister

History

Pulp keeps track of operations performed on its consumers in the consumer's history. The following operations are tracked:

A consumer can view its own history using the consumer history command:

$ pulp-consumer consumer history

A number of query arguments may be passed in to the consumer history command in order to refine the results. The following query parameters are provided.

Name Flag Description
Event Type --event_type Limits the results to only those that match the given event type. The programmatic names for the event types can be found by running the consumer history --help command.
Limit --limit Only displays the given number of history entries. Value must be greater than zero.
Sort --sort Sorts the history entries according to timestamp. Valid values are "ascending" and "descending". Default is descending.
Start Date --start_date Limits the returned entries to on or after the given date. The format follows the Date Units guidelines.
End Date --end_date Limits the returned entries to on or before the given date. The format follows the Date Units guidelines.

These parameters may be combined to form advanced queries.

$ pulp-consumer consumer history --limit 3 --event_type repo_bound --start_date 2011-01-01 --end_date 2011-01-31
+------------------------------------------+
              Consumer History
+------------------------------------------+

Event Type            	Repo Bound               
Timestamp             	2011-01-10 13:42:16.780000
Originator            	admin                    
Repo ID               	example              

Package Profile

A consumer's package profile is an inventory of installed packages on the client, including their names, versions, and architecture. Consumers automatically send an updated package profile to the Pulp server at regular intervals (see the Client Configuration section for more information on the frequency).


Repository Binding

Bind

A consumer can use repositories in Pulp through a process called binding. Once configured, bound repositories are added to the consumer's yum repository list and are available for package installation either by the pulp-admin script or through yum. All bound repositories are found in the /etc/yum.repos.d/pulp.repo file.

Repositories are bound through the consumer bind command:

$ pulp-consumer consumer bind --repoid example
Successfully subscribed consumer [test-consumer] to repo [example]

The list of repositories a consumer has access to can be found through the repo list command:

$ pulp-consumer repo list
+------------------------------------------+
       List of Available Repositories
+------------------------------------------+

Label              	example                  
Name               	example                  
FeedURL            	http://example.com/repos 
FeedType           	yum                      
Arch               	noarch                   
Sync Schedule      	None                     
Packages           	0                        
Files              	0                        
Distributions      	None                     
Publish            	True                     
Clones             	[]                       
Groups             	None

Note: The "Label" field in the above output is the value used for --repoid in the bind command.

Unbind

A consumer can remove its association from a repository through the consumer unbind command. Like consumer bind, this command takes a single argument --repoid which identifies the repository to unbind:

$ pulp-consumer consumer unbind --repoid example
Successfully unsubscribed consumer [test-consumer] from repo [example]