Plugin Configuration¶
Importer¶
Type ID: puppet_importer
feed
URL to an existing repository that should be imported, for example
http://forge.puppetlabs.com
The repository may be either a Puppet Forge repository or a plain directory containing a pulp manifest and packaged puppet modules. The pulp manifest is a file listing each puppet module contained in the directory. Each module is listed on a separate line which has the following format: <name>,<checksum>,<size>. The name is the file name. The checksum is SHA-256 digest of the file. The size is the size of the file in bytes. The Pulp manifest must be named
PULP_MANIFEST
.Example:
Directory containing:
- PULP_MANIFEST
- module-a.tar.gz
- module-b.tar.gz
- module-c.tar.gz
The PULP_MANIFEST:
module-a.tar.gz,2d711642b726b04401627ca9fbac32f5c8530fb1903cc4db02258717921a4881,1763 module-b.tar.gz,5dde896887f6754c9b15bfe3a441ae4806df2fde94001311e08bf110622e0bbe,1431 module-c.tar.gz,cd2eb0837c9b4c962c22d2ff8b5441b7b45805887f051d39bf133b583baf6860,2213
The URL:
file://myhost/modules/PULP_MANIFEST
queries
- Comma-separated list of queries that should be run against the upstream repository. Each query is used separately to retrieve a result set, and each resulting module will be imported.
remove_missing
- Boolean indicating whether or not previously-synced modules should be removed
from the local repository if they were removed in the upstream repository.
Defaults to
False
.
Distributor¶
Type ID: puppet_distributor
This distributor publishes a forge-like API. The user guide explains in detail
how to use the puppet module
tool to install, update, and remove modules
on a puppet installation using a repository hosted by Pulp. This distributor does
not support the search functionality that Puppet Forge offers, primarily because
that feature is not compatible with the concept of hosting multiple repositories
at one FQDN.
absolute_path
- Base absolute URL path where all Puppet repositories are published. Defaults
to
/pulp/puppet
. http_dir
- Full path to the directory where HTTP-published repositories should be created.
Defaults to
/var/lib/pulp/published/puppet/http/repos
. https_dir
- Full path to the directory where HTTPS-published repositories should be created.
Defaults to
/var/lib/pulp/published/puppet/https/repos
. serve_http
- Boolean indicating if the repository should be served over HTTP. Defaults to
True
. serve_https
- Boolean indicating if the repository should be served over HTTPS. Defaults to
False
.
Install Distributor¶
Type ID: puppet_install_distributor
This distributor publishes modules by actually installing them into a given
install_path[/subdir]
on the Pulp server’s filesystem. This is useful when you want
the contents of a repository to exactly be the collection of modules installed
in a puppet environment. This allows you to use Pulp’s repository management
features to manage which modules are installed in puppet.
- This distributor performs these operations in the following order:
- Creates a temporary directory in the parent directory of
install_path[/subdir]
. - Extracts each module in the repository to that temporary directory.
- Deletes every directory it finds in the
install_path[/subdir]
. - Moves the content of temporary directory into the
install_path[/subdir]
. - Removes the temporary directory.
- Creates a temporary directory in the parent directory of
Extracted files and directories will inherit the uid and gid of the pulp process that extracts them. Because some puppet modules contain files with problematic filesystem permissions, pulp ensures minimum permissions of 0644 for regular files and 0755 for directories.
When this distributor gets removed from a repository, such as when the repository
gets deleted, the install_path
and everything in it will be deleted.
Warning
This distributor deletes everything in the install_path
!
install_path
This is a full path to the directory where modules should be installed. It is the user’s responsibility to ensure that Pulp can write to this directory. The web server user (for example,
apache
) must be granted filesystem permissions to write to this path and the parent directory. If the directory does not exist, it will be created. Additionally, the system SELinux policy must permit Pulp to write to this directory. Pulp’s SELinux policy includes apulp_manage_puppet
boolean that allows Pulp to write to paths that have thepuppet_etc_t
label. You must ensure that theinstall_path
and its parent directory have this label applied to it. This boolean is disabled by default for safety. If you wish to enable it, you can do this:$ sudo semanage boolean --modify --on pulp_manage_puppet
/etc/puppet/
has thepuppet_etc_t
label by default, so if you use this or a sub directory of it as yourinstall_path
and you enable thepulp_manage_puppet
boolean, SELinux will allow Pulp to write to that path.subdir
This is an optional setting to install puppet modules in a subdirectory of the
install_path
. This allows Pulp to install puppet modules ininstall_path[/subdir]
and to remove theinstall_path
directory on distributor removal. If the specifiedsubdir
does not exist it will be created.subdir
defaults to None, so if a subdir options is not provided the module is installed in theinstall_path
directory. An existing repository that wishes to use thesubdir
option can update the distributor config.Sample Request:
{ "distributor_configs": { "puppet_install_distributor_example": { "install_path":"/etc/puppet/environments/MYENV", "subdir": "modules" } } }
File Distributor¶
Type ID: puppet_file_distributor
This distributor publishes modules by making them available in a flattened format in
a single directory on the file system and served via HTTPS. The files are published
to the https_files_dir
specified in the plugin configuration. A repository is
placed in a subdirectory of the https_files_dir
with the same name as the repository
id. The base URL path where all Puppet repositories are published is /pulp/puppet/files
.
https_files_dir
- Full path to the directory where HTTPS published file repositories will be created.
Defaults to
/var/lib/pulp/published/puppet/files
.