Commit 51e3591a authored by Jonathan's avatar Jonathan
Browse files

Merge pull request #28 from djjudas21/templates

Templates
parents 12fedc08 3eef3374
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
       * [`freeradius::site`](#freeradiussite)
       * [`freeradius::sql`](#freeradiussql)
       * [`freeradius::statusclient`](#freeradiusstatusclient)
       * [`freeradius::template`](#freeradiustemplate)
4. [Limitations - OS compatibility, etc.](#limitations)
5. [Development - Guide for contributing to the module](#development)
6. [Release Notes](#release-notes)
@@ -717,6 +718,17 @@ Default: `undef`. The UDP port that this virtual server should listen on. Leave
##### `shortname`
required. A short alias that is used in place of the IP address or fully qualified hostname provided in the first line of the section.

#### `freeradius::template`

Define template items that can be referred to in other config items

##### `source`

Provide source to a file with the template item. Specify only one of `source` or `content`.

##### `content`

Provide content of template item. Specify only one of `source` or `content`.

## Limitations

files/template.header

0 → 100644
+33 −0
Original line number Diff line number Diff line
# -*- text -*-
##
## templates.conf -- configurations to be used in multiple places
##
##	$Id: 7b8b44e051c974c1a0a6e27a0cff50e621835df2 $
 
######################################################################
#
#  Version 2.0 has a useful new feature called "templates".
#
#  Use templates by adding a line in radiusd.conf:
#
#	$INCLUDE templates.conf
#
#  The goal of the templates is to have common configuration located
#  in this file, and to list only the *differences* in the individual
#  sections.  This feature is most useful for sections like "clients"
#  or "home_servers", where many may be defined, and each one has
#  similar repeated configuration.
#
#  Something similar to templates can be done by putting common
#  configuration into separate files, and using "$INCLUDE file...",
#  but this is more flexible, and simpler to understand.  It's also
#  cheaper for the server, because "$INCLUDE" makes a copy of the
#  configuration for inclusion, and templates are simply referenced.
#
#  The templates are defined in the "templates" section, so that they
#  do not affect the rest of the server configuration.
#
#  A section can reference a template by using "$template name"
#
templates {
+20 −0
Original line number Diff line number Diff line
@@ -90,6 +90,26 @@ class freeradius (
    order   => '99',
  }

  # Set up concat template file
  concat { "${freeradius::fr_basepath}/templates.conf":
    owner   => 'root',
    group   => $freeradius::fr_group,
    mode    => '0640',
    require => [Package[$freeradius::fr_package], Group[$freeradius::fr_group]],
    notify  => Service[$freeradius::fr_service],
  }
  concat::fragment { 'template_header':
    target => "${freeradius::fr_basepath}/templates.conf",
    source => 'puppet:///modules/freeradius/template.header',
    order  => '05',
  }
  concat::fragment { 'template_footer':
    target  => "${freeradius::fr_basepath}/templates.conf",
    content => "}\n",
    order   => '95',
  }


  # Set up concat proxy file
  concat { "${freeradius::fr_basepath}/proxy.conf":
    owner   => 'root',

manifests/template.pp

0 → 100644
+16 −0
Original line number Diff line number Diff line
# Configure a template snippet
define freeradius::template (
  $source = undef,
  $content = undef,
) {
  $fr_basepath = $::freeradius::params::fr_basepath

  # Configure config fragment for this template
  concat::fragment { "template -${name}":
    target  => "${fr_basepath}/templates.conf",
    source  => $source,
    content => $content,
    order   => 10,
  }
}
+8 −0
Original line number Diff line number Diff line
@@ -828,6 +828,14 @@ instantiate {
	$INCLUDE instantiate/
}

######################################################################
#
#  Enable support for templates
#
######################################################################
$INCLUDE templates.conf


######################################################################
#
#	Policies that can be applied in multiple places are listed
Loading