16.4. Synchronizing Puppet Modules from a Git Repository
Red Hat Satellite 6 includes a utility called pulp-puppet-module-builder
, which you can install on other systems from the pulp-puppet-tools
RPM. This tool checks out a Git repository, builds all the modules, and publishes them in a structure that Satellite 6 can synchronize. One common method is to run the utility on Satellite Server itself, publish to a local directory, and synchronize against that directory. For example:
# mkdir /modules # chmod 755 /modules # pulp-puppet-module-builder \ --output-dir=/modules \ --url=git@mygitserver.com:mymodules.git \ --branch=develop
This example checks out the develop
branch of the Git repository from git@mygitserver.com:mymodules.git
and publishes it to /modules
. Add this directory as the URL (file:///modules
) for a new repository on Satellite Server.
Publishing Puppet Modules on a Remote HTTP Server
The same process also applies to publishing modules on a remote HTTP server. For example, if you use webserver.example.com
as a standard web host to publish the Puppet modules.
# mkdir /var/www/html/modules/ # chmod 755 /var/www/html/modules/ # pulp-puppet-module-builder \ --output-dir=/var/www/html/modules/ \ --url=git@mygitserver.com:mymodules.git \ --branch=develop
On Satellite Server, set the repository’s URL to http://webserver.example.com/modules/
.
Synchronizing Puppet Modules from a Git repository using the web UI
Use the following procedure to synchronize Puppet modules from a Git repository.
Procedure
- Create a custom product and click Create Repository.
- From the Type list, select puppet.
-
In the URL field, enter the URL of the external Git repository to use as a source in the following format:
file:///modules
.
For CLI Users
Create the Puppet Forge repository:
# hammer repository create \ --name "Modules from Git" \ --content-type "puppet" \ --product "MyProduct" \ --organization "My_Organization" \ --url file:///modules