Project

General

Profile

« Previous | Next » 

Revision b1cb5485

Added by Dominic Cleal over 9 years ago

Add introduction to README

View differences:

README.md
# Puppet module for installing Puppet agent, and Puppet server
[![Puppet Forge](http://img.shields.io/puppetforge/v/theforeman/puppet.svg)](https://forge.puppetlabs.com/theforeman/puppet)
[![Build Status](https://travis-ci.org/theforeman/puppet-puppet.svg?branch=master)](https://travis-ci.org/theforeman/puppet-puppet)
Installs Puppet agent:
# Puppet module for installing the Puppet agent and master
Optional support for installation of a Puppetmaster (using server => true)
Installs and configures the Puppet agent and optionally a Puppet master (when
`server` is true). Part of the [Foreman installer](http://github.com/theforeman/foreman-installer)
or to be used as a Puppet module.
* Configurable support for static or git-backed dynamic environments (requires puppet-git module)
* Storeconfig options (off, ActiveRecord or PuppetDB)
* Passenger support (requires puppet-apache and puppet-passenger modules)
* PuppetDB integration (requires puppetlabs-puppetdb module)
The Puppet master is configured under Apache and Passenger by default, unless
`server_passenger` is set to false. Alternatively, set `server_implementation`
to `puppetserver` to switch to the JVM-based Puppet Server.
# Installation
## Using GIT
git clone git://github.com/theforeman/puppet-puppet.git
## Downloadable Tarball
* http://github.com/theforeman/puppet-puppet/tarball/master
# Requirements
Many puppet.conf options for agents, masters and other are parameterized, with
class documentation provided at the top of the manifests.
`server_additional_settings` can be used to supply master options that are
missing parameters.
Only really tested on RedHat and Debian. Patches welcome for other OSes :)
## Environments support
# Setup
The module helps configure Puppet environments using directory environments on
Puppet 3.6+ and config environments on older versions. These are set up under
/etc/puppet/environments/ - change `server_environments` to define the list to
create, or use `puppet::server::env` for more control.
This is a parameterized class, but the defaults should get you going:
## Git repo support with theforeman/git
Standalone agent with defaults:
Environments can be backed by git by setting `server_git_repo` to true, which
sets up `/var/lib/puppet/puppet.git` where each branch maps to one environment.
Avoid using 'master' as this name isn't permitted. On each push to the repo, a
hook updates `/etc/puppet/environments` with the contents of the branch.
echo include puppet | puppet --modulepath /path_to/extracted_tarball
# Integration with Foreman
## Foreman integration with theforeman/foreman
With the 3.0.0 release the Foreman integration became optional. Note that you
need the [puppet-foreman module](https://github.com/theforeman/puppet-foreman)
need the [theforeman/foreman module](https://github.com/theforeman/puppet-foreman)
installed.
It will still by default install the Foreman integration when `server` is true,
so if you wish to run a puppet server without Foreman, it can be disabled by
setting `server_foreman` to false:
so if you wish to run a Puppet master without Foreman, it can be disabled by
setting `server_foreman` to false.
class { '::puppet':
server => true,
server_foreman => false,
server_reports => 'store',
server_external_nodes => '',
}
## PuppetDB integration with puppetlabs/puppetdb
The Puppet master can be configured to export catalogs and reports to a
PuppetDB instance, using the puppetlabs/puppetdb module. Use its
`puppetdb::server` class to install PuppetDB and this module to configure the
Puppet master.
# Installation
Available from GitHub (via cloning or tarball), [Puppet Forge](https://forge.puppetlabs.com/theforeman/puppet)
or as part of the Foreman installer.
# Customization
# Usage
As a parameterized class, all the configurable options can be overridden from your
wrapper classes or even your ENC (if it supports param classes). For example:
......
server_post_hook_content => 'puppetserver/post-hook.puppet',
}
# Configure master without Foreman integration
class { '::puppet':
server => true,
server_foreman => false,
server_reports => 'store',
server_external_nodes => '',
}
# Want to integrate with an existing PuppetDB?
class { '::puppet':
server => true,

Also available in: Unified diff