####Table of Contents
- [Overview] (#overview)
- Module Description
- Setup
- Usage
- Examples
- Reference
Installs Pulp on RHEL, CentOS, and Fedora from the repository of your choice.
The Pulp module manages pulp server or consumer installation and configuration. It does not handle the installation or configuration of any of its dependencies, which are currently MongoDB and a message broker for Celery. Current options are Qpid and RabbitMQ. The default configuration settings for this module are for Qpid. You can make use of the MongoDB puppet module and a Qpid module of your choice to set up these dependencies as necessary.
####What this module affects
- Pulp yum repository.
- Pulp packages.
- Pulp configuration files.
- Apache configuration for the Pulp WSGI application.
- The pulp_workers, pulp_celerybeat and pulp_resource_manager services.
###Beginning with Pulp
If you want a server installation of Pulp with the default configuration options you can run:
class {'::pulp::server':}
If you need to customize configuration options (which you probably will) you can do the following:
class {'::pulp::server':
default_login => 'jcline',
default_password => 'hunter2'
}
Note that Pulp will require a MongoDB server to function properly. By default,
Pulp will attempt to connect to a MongoDB server running on localhost. If you
already have a database available, see the db_*
parameters for pulp::server
.
If you don't, you will either need to set one up manually, or use
puppetlabs/mongodb. Pulp also
expects a message broker to be installed. You can use either Qpid or RabbitMQ. By
default, Pulp uses Qpid.
To install pulp from a different repository (here we use the Pulp beta repository)
you will need to use the pulp::repo
class:
class {'::pulp::repo':
repo_descr => 'Pulp Beta Repository',
repo_baseurl => 'http://repos.fedorapeople.org/repos/pulp/pulp/beta/2.4/',
} ->
class {'::pulp::server': }
Dependencies:
- puppetlabs/apache
- puppetlabs/mongodb
- example42/yum
- dprince/qpid
This is real world working node configuration example:
# dependency classes
class {'::yum':
defaultrepo => false
}
class { '::qpid::server':
config_file => '/etc/qpid/qpidd.conf'
}
class { '::mongodb::server': }
class { '::apache': }
# pulp classes
class { '::pulp::repo':
repo_priority => 15
}
class { '::pulp::server':
db_name => 'pulp_database',
db_seed_list => 'localhost:27017',
}
class { '::pulp::admin':
verify_ssl => false
}
class { '::pulp::consumer':
verify_ssl => false
}
# dependency packages
package { [ 'qpid-cpp-server-store', 'python-qpid', 'python-qpid-qmf' ]:
ensure => 'installed',
}
# ordering
anchor { 'profile::pulp::server::start': }
anchor { 'profile::pulp::server::end': }
Anchor['profile::pulp::server::start']->
Class['::yum::repo::epel']->
Class['::mongodb::server']->
Class['::pulp::repo']->
Class['::qpid::server']->
Package['qpid-cpp-server-store'] -> Package['python-qpid'] -> Package['python-qpid-qmf'] ->
Class['::pulp::server']->
Class['::apache::service']->
Class['::pulp::admin']->
Class['::pulp::consumer']->
Anchor['profile::pulp::server::end']
####Public classes
pulp::repo
: Configure pulp hosted yum repository.pulp::server
: Installs and configures a Pulp serverpulp::consumer
: Installs and configures a Pulp consumerpulp::admin
: Installs and configures a Pulp admin
####Private classes
pulp::params
: Provides a location to set default parameters for Pulp that can be overriddenpulp::server::config
: Manages the configuration of a Pulp serverpulp::server::install
: Manages the installation of the Pulp server packagespulp::server::service
: Manages the services necessary for a Pulp serverpulp::consumer::config
: Manages the configuration of a Pulp consumerpulp::consumer::install
: Manages the installation of the Pulp consumer packagespulp::consumer::service
: Manages the services necessary for a Pulp consumerpulp::admin::config
: Manages the configuration of a Pulp adminpulp::admin::install
: Manages the installation of the Pulp admin packagespulp::admin::service
: Manages the services necessary for a Pulp admin
####Class: pulp::repo
This class allows you to override what repository the Pulp packages come from. This is useful if you would like to install the Pulp beta. For more information on these settings, see the repository options section of the yum.conf manual page.
####repo_name
This setting is used to change the repository file name Puppet adds to /etc/yum.repos.d/
.
The default is 'pulp-stable'.
####repo_descr
This setting is used to change the repository description. This is equivalent to the
name
field in a yum .repo file. The default is 'Pulp Stable Repository'.
####repo_baseurl
This is the base URL for the repository. This is not equivalent to the baseurl
field
in a .repo file. It should not include the distribution or architecture. Puppet will
determine these and apply them to the URL. For example: to install the latest 2.4 beta,
you should use the value http://repos.fedorapeople.org/repos/pulp/pulp/beta/2.4/
.
The default is http://repos.fedorapeople.org/repos/pulp/pulp/stable/2/
.
####repo_enabled
This determines whether the repository is enabled or not. The value should be either
'1' or '0'. The default is '1'.
####repo_gpgcheck
This setting is used to determine whether or not to use GPG checking for the repository.
the value should be either '1' or '0'. The default is '0'.
####repo_priority
This setting is used to change the repository priority. Might be required when other
installed repositories have set priorities.
####Class: pulp::server
Most of these parameters manipulate the /etc/pulp/server.conf file.
For more details about the configuration parameters, take a look at the default configuration file, which is documented in-line.
####node_parent
If true
, the Pulp Nodes Parent package group will be installed. This requires that
OAuth is enabled and configured. The default is false
.
####enable_celerybeat
This setting can be used to enable the pulp_celerybeat
service on this server.
See the server installation documents
for more information. Options are true
or false
. The default is true
.
####enable_resource_manager
This setting can be used to enable the pulp_resource_manager
service on this server.
See the server installation documents
for more information. Options are true
or false
. The default is true
.
####wsgi_processes
This setting can be used to change the number of WSGI processes Pulp uses. The default is 3.
###wsgi_threads
This setting determines the number of threads each WSGI process has. The default is 15.
###proxy_host
If you are using a proxy, you can configure all repositories to import content using
the given proxy host. Note that you will need to provide the port, username, and
password as well. For more information, see the importer
configuration documentation.
###proxy_port
If you are using a proxy, you can configure all repositories to import content using
the given proxy port.
###proxy_username
If you are using a proxy, you can configure all repositories to import content using
the given proxy username.
###proxy_password
If you are using a proxy, you can configure all repositories to import content using
the given proxy password.
####db_name
This setting corresponds to the [database] name
field.
####db_seed_list
This setting corresponds to the [database] seeds
field.
####db_operation_retries
This setting corresponds to the [database] operation_retries
field.
####db_username
This setting corresponds to the [database] username
field.
####db_password
This setting corresponds to the [database] password
field.
####db_replica_set
This setting corresponds to the [database] replica_set
field.
####server_name
This setting corresponds to the [server] server_name
field.
####server_key_url
This setting corresponds to the [server] key_url
field.
####server_ks_url
This setting corresponds to the [server] ks_url
field.
####default_login
This setting corresponds to the [server] default_login
field.
####default_password
This setting corresponds to the [server] default_password
field.
####debugging_mode
This setting corresponds to the [server] debugging_mode
field.
####log_level
This setting corresponds to the [server] log_level
field.
####auth_rsa_key
This setting corresponds to the [authentication] rsa_key
field.
####auth_rsa_pub
This setting corresponds to the [authentication] rsa_pub
field.
####oauth_enabled
This boolean setting corresponds to the [oauth] oauth_enabled
field.
This should be true
if this server is a parent node. Default is false
####oauth_key
This setting corresponds to the [oauth] oauth_key
field.
####oauth_secret
This setting corresponds to the [oauth] oauth_secret
field.
####cacert
This setting corresponds to the [security] cacert
field.
####cakey
This setting corresponds to the [security] cakey
field.
####ssl_ca_cert
This setting corresponds to the [security] ssl_ca_cert
field.
####user_cert_expiration
This setting corresponds to the [security] user_cert_expiration
field.
####consumer_cert_expiration
This setting corresponds to the [security] consumer_cert_expiration
field.
####serial_number_path
This setting corresponds to the [security] serial_number_path
field.
####consumer_history_lifetime
This setting corresponds to the [consumer_history] lifetime
field.
####reaper_interval
This setting corresponds to the [data_reaping] reaper_interval
field.
####reap_archived_calls
This setting corresponds to the [data_reaping] archived_calls
field.
####reap_consumer_history
This setting corresponds to the [data_reaping] consumer_history
field.
####reap_repo_sync_history
This setting corresponds to the [data_reaping] repo_sync_history
field.
####reap_repo_publish_history
This setting corresponds to the [data_reaping] repo_publish_history
field.
####reap_repo_group_publish_history
This setting corresponds to the [data_reaping] repo_group_publish_history
field.
####reap_task_status_history
This setting corresponds to the [data_reaping] task_status_history
field.
####reap_task_result_history
This setting corresponds to the [data_reaping] task_result_history
field.
####msg_url
This setting corresponds to the [messaging] url
field.
####msg_transport
This setting corresponds to the [messaging] transport
field.
####msg_auth_enabled
This setting corresponds to the [messaging] auth_enabled
field.
####msg_cacert
This setting corresponds to the [messaging] cacert
field.
####msg_clientcert
This setting corresponds to the [messaging] clientcert
field.
####msg_topic_exchange
This setting corresponds to the [messaging] topic_exchange
field.
####tasks_broker_url
This setting corresponds to the [tasks] broker_url
field.
####celery_require_ssl
This setting corresponds to the [tasks] celery_require_ssl
field.
####tasks_cacert
This setting corresponds to the [tasks] cacert
field.
####tasks_keyfile
This setting corresponds to the [tasks] keyfile
field.
####tasks_certfile
This setting corresponds to the [tasks] certfile
field.
####email_host
This setting corresponds to the [email] host
field.
####email_port
This setting corresponds to the [email] port
field.
####email_from
This setting corresponds to the [email] from
field.
####email_enabled
This setting corresponds to the [email] enabled
field.
####Class: pulp::consumer
Most of the parameters manipulate the /etc/pulp/consumer/consumer.conf file.
For more details about the configuration parameters, see the consumer client installation documentation, and look at the default configuration file, which is documented in-line.
####pulp_server
This setting corresponds to the [server] host
field.
####pulp_port
This setting corresponds to the [server] port
field.
####pulp_login
This setting corresponds to the login user for the pulp server
####pulp_password
This setting corresponds to the login password for the pulp server
####pulp_api_prefix
This setting corresponds to the [server] api_prefix
field.
####pulp_rsa_pub
This setting corresponds to the [server] rsa_pub
field.
####verify_ssl
This setting corresponds to the [server] verify_ssl
field. The default
is True
.
####ca_path
This setting corresponds to the [server] ca_path
field. The default
is /etc/pki/tls/certs/
####id
This setting corresponds to the id of the consumer. The default is its hostname.
####display_name
This setting corresponds to the name of the consumer. The default is its fqdn.
####consumer_rsa_key
This setting corresponds to the [authentication] rsa_key
field.
####consumer_rsa_pub
This setting corresponds to the [authentication] rsa_pub
field.
####client_role
This setting corresponds to the [client] role
field.
####extensions_dir
This setting corresponds to the [filesystem] extensions_dir
field.
####repo_file
This setting corresponds to the [filesystem] repo_file
field.
####mirror_list_dir
This setting corresponds to the [filesystem] mirror_list_dir
field.
####gpg_keys_dir
This setting corresponds to the [filesystem] gpg_keys_dir
field.
####cert_dir
This setting corresponds to the [filesystem] cert_dir
field.
####id_cert_dir
This setting corresponds to the [filesystem] id_cert_dir
field.
####id_cert_filename
This setting corresponds to the [filesystem] id_cert_filename
field.
####reboot
This setting corresponds to the [reboot] permit
field.
####reboot_delay
This setting corresponds to the [reboot] delay
field.
####log_filename
This setting corresponds to the [logging] log_filename
field.
####call_log_filename
This setting corresponds to the [logging] call_log_filename
field.
####poll_frequency
This setting corresponds to the [output] poll_frequency
field.
####color_output
This setting corresponds to the [output] color_output
field.
####wrap_terminal
This setting corresponds to the [output] wrap_terminal
field.
####wrap_width
This setting corresponds to the [output] wrap_width
field.
####msg_scheme
This setting corresponds to the [messaging] msg_scheme
field.
####msg_host
This setting corresponds to the [messaging] msg_host
field.
####msg_transport
This setting corresponds to the [messaging] msg_transport
field.
####msg_cacert
This setting corresponds to the [messaging] msg_cacert
field.
####msg_clientcert
This setting corresponds to the [messaging] msg_clientcert
field.
####profile_minutes
This setting corresponds to the [profile] profile_minutes
field.