Forge Home

pulp

Setup pulp repository server and client

28,866 downloads

28,417 latest version

4.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.1.0 (latest)
  • 0.0.2
  • 0.0.1
released Nov 25th 2013

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'hawknewton-pulp', '0.1.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add hawknewton-pulp
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install hawknewton-pulp --version 0.1.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download
Tags: yum, forge, rpm, pulp

Documentation

hawknewton/pulp — version 0.1.0 Nov 25th 2013

Build Status

Overview

This module makes an honest attempt at installing the The Pulp Repository, including it's consumer and administration clients, onto a redhat system of your choice. The Pulp Repo brings to the table (among other things) the ability to host an internal puppet repository (like puppetforge but without the pretty web interface).

Quickstart

Install the server, admin client, and consumer on the same box:

class { 'pulp': }               # Install pulp v2 yum repo
clsss { 'pulp::server': }       # Install pulp server
class { 'pulp::admin_client': } # Install admin client
class { 'pulp::consumer': }     # Install pulp agent and client

# Create a puppet repo
puppet_repo { 'repo_id':
  # Default pulp admin login/password
  ensure       => 'present',
  login        => 'admin',
  password     => 'admin',
  display_name => 'my test repo',
  description  => "I lifted this repo from the pulp puppet module and didn't change the description!",
  feed         => 'http://forge.puppetlabs.com',
  queries      => ['query1', 'query2'],
  schedules    => [ '2012-12-16T00:00Z/P1D', '2012-12-17T00:00Z/P1D' ]
  serve_http   => true,
  serve_https  => true
  notes        => {
    'note1' => 'value 1',
    'note2' => 'value 2'
  }
}

The default configuration is rather nieve. It does nothing beyond what's outlined int The Pulp's installation section. If you want to use this for real you'll likely want to provide additional configuration to secure and customize your installation.

Installation

Detailed information is avaialble in the installation section of The Pulp user guide

Supported Operating Systems

Server

  • RHEL 6
  • Fedora 17 & 18
  • CentOS 6

Consumer

  • RHEL 5 & 6
  • Fedora 17 & 18
  • CentOS 6

Module Prerequisites

This module needs a few thing to make it go:

  • The EPEL repo of your choice. I tested using stahnma/epel, which seems as good as any.

  • You'll need to disable selinux.

Usage

Class pulp

Installs a local pulp v2 yumrepo.

class { 'pulp':
  ensure => 'present'
}

Parameters

ensure

  • enabled: Install the pulp yumrepo and enable it
  • diabled: Install and pulp yumrepo and leave it disabled
  • absent: Remove any yumrepo called pulp-v2-stable

If you want to manage the pulp repo yourself, don't include the pulp class.

Class pulp::server

Fires up a pulp server, including mongo, qpid, and httpd.

class { 'pulp::server':
  ensure => 'present'
}
Parametres:

ensure (defaults to present)

  • present: install the pulp server at the current version
  • 2.2.0-1.el6 (for example): pin the pulp server at a specific verion
  • absent: remove the pulp server, shut down services, and delete config files

conf_template (optional)

If provided, use this template instead of the built-in templates/server.conf.erb

Class pulp::admin_client

Installs and configures the pulp admin client.

class { 'pulp::admin_client':
  ensure => 'present'
}
Parameters:

ensure -- optional, defaults to present

  • present: Install the pulp admin client at the current version
  • 2.2.0-1.el6 (for example): pin the client to a specific verison
  • absent: remove the admin client

server -- optional, defaults to the current host

conf_template -- optional

If provided, use this template instead of the built-in templates/admon.conf.erb

Class pulp::consumer

Installs and configures the pulp consumer.

class { 'pulp::consumer':
  ensure => 'present'
}
Parameters:

ensure -- optional, defaults to present

  • present: Install the pulp consumer at the current version
  • 2.2.0-1.el6 (for example): pin the client ot a specific verison
  • absent: Remove the pulp-consumer packages

server -- optional, defaults to the current host

conf_template -- optional

If provided, use this template instead of the built-in templates/consumer.conf.erb

Type puppet_repo

Sets up a puppet module repository on your pulp server

puppet_repo { 'repo_id':
  # Default pulp admin login/password
  ensure       => 'present',
  login        => 'admin',
  password     => 'admin',
  display_name => 'my test repo',
  description  => "I lifted this repo from the pulp puppet module and didn't change the description!",
  feed         => 'http://forge.puppetlabs.com',
  queries      => ['query1', 'query2'],
  schedules    => [ '2012-12-16T00:00Z/P1D', '2012-12-17T00:00Z/P1D' ]
  serve_http   => true,
  serve_https  => true
  notes        => {
    'note1' => 'value 1',
    'note2' => 'value 2'
  }
}
Parameters:

ensure -- required, may be present or absent

  • present: Ensure the repo exists
  • absent: Ensure the repo doesn't exist

login -- Login to your pulp repo (think pulp-admin login)

password -- Password to your pulp repo (think pulp-admin login)

display_name -- optional, the display name for your repo

description -- optional, the description for your repo

feed -- optional, feed url for your repo

queries -- optional list, queries for your repo, see pulp-admin puppet repo create

schedules -- optional list, sync schedules for your repo in 8601 format

serve_http -- optional defaults to true, serve the repo via http

serve_https -- optional defaults to false, serve the repo via https

notes -- optional map, notes for your repo, see pulp-admin puppet repo create. An empty map has no effect, to remove a note set the value to an empty string

Developing

If you want to issue a pull request, that'd be awesome. Make sure you have a fairly recent version of both vagrant and ruby, then do this:

bundle install
bundle exec rake spec spec:system

TODO

  • Fail when we're being installed on an unsupported OS
  • Enable the installation of puppet modules on a puppetmaster
  • Add rpm repo support