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

Merge pull request #28 from djjudas21/templates

Templates
parents 12fedc08 3eef3374
......@@ -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
......
# -*- 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 {
......@@ -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',
......
# 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,
}
}
......@@ -828,6 +828,14 @@ instantiate {
$INCLUDE instantiate/
}
######################################################################
#
# Enable support for templates
#
######################################################################
$INCLUDE templates.conf
######################################################################
#
# Policies that can be applied in multiple places are listed
......
......@@ -722,6 +722,12 @@ instantiate {
#}
}
######################################################################
#
# Enable support for templates
#
$INCLUDE templates.conf
######################################################################
#
# Policies are virtual modules, similar to those defined in the
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment