Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2016.4.x
- Puppet >= 4.10.0 < 7.0.0
- , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'adobeinc-dispatcher', '1.0.0'
Learn more about managing modules with a PuppetfileDocumentation
Dispatcher
Table of Contents
- Description
- Setup - The basics of getting started with dispatcher
- Usage - Configuration options and additional functionality
- Limitations - OS compatibility, etc.
- Contributing - Guidelines for contributing
- Development - Guide for contributing to the module
Description
Dispatcher is Adobe Experience Manager's caching and/or load balancing tool. This Puppet module will facilitate the configuration and management of Adobe Dispatcher modules in your infrastructure. It can configure the module and any number of farms definitions in an a simple and efficient manner.
Setup
What the Dispatcher module affects:
- Dispatcher module configuration files
- Dispatcher farm configuration files
Setup Requirements
Because the dispatcher module depends on the Apache module, that module must be included in the catalog, otherwise an error will be raised.
This module will configure the dispatcher, but the module must be provided by the consumer. Ensure that the Dispatcher module is made available within the catalog.
Beginning with Dispatcher
To have Puppet install the Dispatcher with default parameters (but no farms), declare the dispatcher class:
class { 'dispatcher' :
module_file => '/path/to/module/file.so'
}
When you declare this class with the default options, the module:
- Installs the module in the operating system dependent Apache installation directory.
- Places the dispatcher configuration file in the operating system dependent Apache directory.
- Configures the module with default log file, log level, and other optional flags.
Note: While the dispatcher module does not require any farms to be defined, the system will not function correctly without any - and none are defined/provided by default.
Usage
Dispatcher Configuration
The default parameters for the dispatcher
class configures the Dispatcher module with reasonable defaults to ensure operation. Minimally, a reference to the dispatcher module file must be provided by the consumer.
class { 'dispatcher' :
module_file => '/path/to/module/file.so'
}
See the dispatcher
class reference for a list of all parameters and their defaults.
Specifying Farms to Load from Hiera
The dispatcher
class can be passed a list of farm names. These will signal to load farms directly from hiera data, so that no other resources need to be defined.
class { 'dispatcher' :
module_file => '/path/to/module/file.so',
farms => ['author', 'publish'],
}
Dispatcher Loading to VirtualHosts
To automatically load the Dispatcher module into Apache Virutal hosts, the dispatcher
class can be passed a list of those virtual host names. This will concatenate the necessary fragment into the VirtualHost conf file to allow for the dispatcher to process requests.
class { 'dispatcher' :
module_file => '/path/to/module/file.so',
vhosts => ['default', 'custom'],
}
Defining a Farm
The dispatcher::farm
configures a render farm definition for the Dispatcher. A minimal configuration is required for successful operation - these parameters are renderers
, filters
, and cache
.
dispatcher::farm { 'publish' :
renderers => [
{ hostname => 'localhost', port => 4502 },
],
filters => [
{
allow => false,
rank => 1,
url => { regex => true, pattern => '.*' },
},
],
cache => {
docroot => '/var/www/html',
rules => [
{ rank => 1, glob => '*.html', allow => true },
],
allowed_clients => [
{ rank => 1, glob => '*', allow => false },
{ rank => 2, glob => '127.0.0.1', allow => true },
],
}
}
See the dispatcher::farm
defined type reference for a list of all parameters and their defaults.
Note: It is recommended that the farms be defined using hiera data rather than define them as in-line resources in the catalog. See the examples or spec data for ways to achieve this.
Required Parameters
Renderers
The renderers
parameter must be passed a list of Dispatcher::Farm::Renderer
struct types. This struct allows the farm to be configured with one or more renderer endpoints.
dispatcher::farm { 'publish' :
...
renderers => [
{ hostname => '192.168.0.1', port => 4502 },
{ hostname => '192.168.0.1', port => 4502 },
],
...
}
See the Dispatcher::Farm::Renderer
struct type reference for a list of all parameters.
Filters
The filters
parameter must be passed a list of Dispatcher::Farm::Filter
struct types. This struct defines the order and rules for allowing content to be accessible via the Dispatcher.
Since Adobe has recommended not using glob references, they are not supported in Filters. Regex support is available - this flag is used to determine the quote type: '
(regex) or "
(normal).
This example has two rules:
- Deny access to all content
- Allows
html
files from the/content
path
They will be ordered deny then allow, as the rank attribute determines order.
dispatcher::farm { 'publish' :
...
filters => [
{
'allow' => true,
'rank' => 10,
'path' => { 'regex' => false, 'pattern' => '/content/*' },
'extension' => { 'regex' => false, 'pattern' => 'html' },
},
{ 'allow' => false, 'rank' => 1, 'url' => { 'regex' => true, 'pattern' => '.*' } },
],
...
}
See the Dispatcher::Farm::Filter
struct type reference for a list of all parameters.
Cache
The cache
parameter must be passed a Dispatcher::Farm::Cache
struct type. This configures the rules for the farm's cache.
This example specifies a docroot, cache files with the html
extension, and allow the local system to flush the cache.
dispatcher::farm { 'publish' :
...
cache => {
docroot => '/var/www/html',
rules => [
{ rank => 1, glob => '*.html', allow => true },
],
allowed_clients => [
{ rank => 1, glob => '*', allow => false },
{ rank => 2, glob => '127.0.0.1', allow => true },
],
}
...
}
See the Dispatcher::Farm::Cache
struct type reference for a list of all parameters.
Securing a Farm
The dispatcher::farm
defined type supports a custom parameter secure
which will indicate whether or not to enable the Adobe Best Practices for securing a dispatcher. Enabling this flag will define the following Farm configurations:
Filters
First, block all access - This forces consumers to explicitly define access rights via other, subsequent filters. Regardless of other filters defined, this will always be the first one.
/0000 { /type "deny" /url '.*' }
Finally, block access to specific AEM resource paths, selectors, URL parameters and source files. Again, regardless of other filters defined, these entries will always be at the end of the list. This will ensure that even if another filter grants access, these override other definitions.
If access is needed to any resources blocked by these filters, then the Farm must be set to
secure => false
. There is no mechanism to override the order of these filters.
/9993 { /type "deny" /url "/crx/*" }
/9994 { /type "deny" /url "/system/*" }
/9995 { /type "deny" /url "/apps/*" }
/9996 { /type "deny" /selectors '(feed|rss|pages|languages|blueprint|infinity|tidy|sysview|docview|query|[0-9-]+|jcr:content)' /extension '(json|xml|html|feed)' }
/9997 { /type "deny" /method "GET" /query "debug=*" }
/9998 { /type "deny" /method "GET" /query "wcmmode=*" }
/9999 { /type "deny" /extension "jsp" }
Cache
Adobe Security best practices recommend that only explicit agents be allowed to flush the Dispatcher's cache. Therefore enabling farm security defines the following allowedClient
entry. Again, regardless of other definitions in the Dispatcher::Farm::Cache
struct, this entry will always be first - forcing consumers to be explicit about the allowed clients.
/cache {
...
/allowedClients {
/0000 { /type "deny" /glob "*" }
}
}
SELinux Docroot Support
Normally the Apache module is responsible for managing the docroot for a given farm and VirtualHost. However, when SELinux is enabled and enforcing, this creates an issue as the default setting for the docroot is read only.
This module allows you to switch ownership of the docroot from the Apache module to this module. Thus, when SELinux is enforcing, the seltype
will be correctly set to read/write on this folder. To do so, set the manage_docroot
of the Dispatcher::Farm::Cache
struct to true
.
Note: The
manage_docroot
of the Apache VirtualHost resource must be set tofalse
or a catalog error will occur.
dispatcher::farm { 'publish' :
...
cache => {
docroot => '/var/www/html',
manage_docroot => true,
rules => [
{ rank => 1, glob => '*.html', allow => true },
],
allowed_clients => [
{ rank => 1, glob => '*', allow => false },
{ rank => 2, glob => '127.0.0.1', allow => true },
],
}
...
}
Note: This module only supports managing the
docroot
based on default parameters in the Apache module. To customize further, thedocroot
must be managed externally.
Reference
For information on classes, types, and structs see the REFERENCE.md.
Templates
This module relies heavily on templates to configure the dispatcher::farm
defined type. These templates are based on Facter and properties in the Apache module that are specific to your operating system. None of these templates are meant for configuration.
Limitations
For an extensive list of supported operating systems, see the metadata.json.
Contributing
We always appreciate any community contributions to this project. Please check out our Contributing guidelines for more information.
Development
Testing
This module uses PDK for development. When making updates to the module, please run the PDK Validation and PDK Unit Testing commands.
$ pdk validate
...
$ pdk test unit --puppet-version 5
...
$ pdk test unit --puppet-version 6
When developing or testing, it is recommended not to use the bundle
command directly. PDK and Bundle aren't always friendly. If a bundle command will be run, use PDK to "wrap" the bundle command. See the Acceptance Tests section for example with running Litmus.
Note: This module should be tested against both Puppet v5.x and v6.x
Acceptance Tests
This module uses puppet_litmus to perform acceptance tests. There are three provision groups: debian
, ubuntu
and el
. Before submitting a Pull Request, please add acceptance tests and validate the changes:
$ pdk bundle exec rake 'litmus:provision_list[<group>]'
...
$ pdk bundle exec rake litmus:install_agent
...
$ pdk bundle exec rake litmus:install_module
...
$ pdk bundle exec rake litmus:acceptance:parallel
...
$ pdk bundle exec rake litmus:tear_down
Documentation
If you submit a change to this module, be sure to regenerate the reference documentation as follows. (This may be removed after validation that it is created by TravisCI.)
$ pdk bundle exec rake strings:generate:reference
Reference
Table of Contents
Classes
dispatcher
: Installs and sets up the AEM Dispatcher module on your system.
Defined types
dispatcher::farm
: Installs and configures an AEM Dispatcher farm instance on your system.
Data types
Dispatcher::Farm::AuthChecker
: A hash of AuthChecker attributes. Used to configure the/auth_checker
parameter instance of a Farm.Dispatcher::Farm::Cache
: A hash of cache attributes. Used to configure the/cache
parameter instance of a Farm.Dispatcher::Farm::Filter
: A hash of filter attributes. Used to configure the/filter
parameter instance of a Farm.Dispatcher::Farm::Filter::Pattern
: A hash of filter pattern attributes. Used to configure confgure the different options for a filter parameter.Dispatcher::Farm::GlobRule
: A hash of glob rule attributes. Used to configure glob rules for different Farm Cache sections.Dispatcher::Farm::Renderer
: A hash of renderer attributes. Used to configure the/renderer
parameter instance of a Farm.Dispatcher::Farm::SessionManagement
: A hash of sessionmanagement attributes. Used to configure the/sessionmanagement
parameter of a Farm.Dispatcher::Farm::StatisticsCategory
: A hash of Statistic attributes. Used to configure the/statistics
parameter instance of a Farm.Dispatcher::Farm::StickyConnection
: A hash of Statistic attributes. Used to configure the/statistics
parameter instance of a Farm.Dispatcher::Farm::VanityUrls
: A hash of vanity url attributes. Used to configure the/vanith_url
parameter instance of a Farm.
Classes
dispatcher
When this class is declared with the default options, Puppet:
- Installs the specified dispatcher module into Apache modules directory
- Defines a Puppet apache module resource for the dispatcher.
- Defines a default set of Dispatcher configurations
- Loads all defined dispatcher farms
- Reloads the Apache service
Examples
class { 'dispatcher' :
module_file => '/path/to/module/file.so'
}
contain dispatcher
Parameters
The following parameters are available in the dispatcher
class.
module_file
Data type: Stdlib::Filesource
Specifes the source location of the dispatcher module. This is the file that will be copied into the Apache module library path.
decline_root
Data type: Boolean
Sets the value for DispatcherDeclineRoot
. Defaults to true
. For details see the Dispatcher documentation.
log_file
Data type: Stdlib::Absolutepath
Sets the value for DispatcherLog
. Defaults to <Apache logroot>/dispatcher.log
. For details see the Dispatcher documentation.
log_level
Data type: Enum['error', 'warn', 'info', 'debug', 'trace']
Sets the value for DispatcherLogLevel
. Defaults to warn
. For details see the Dispatcher documentation.
pass_error
Data type: Variant[Boolean, Pattern[/^[\d\-,]+$/]]
Sets the value for DispatcherPassError
. Defaults to false
. For details see the Dispatcher documentation.
use_processed_url
Data type: Boolean
Sets the value for DispatcherUseProcessedURL
. Defaults to true
. For details see the Dispatcher documentation.
farms
Data type: Array[String]
A list of Dispatcher Farm names. If specified a dispatcher::farm
defintion will be created for each name. Use hiera data to specify the remaining parameters.
For example, to configure a Dispatcher with two farms author and publish:
class { 'dispatcher' :
module_file => '/path/to/module/file.so',
farms => ['author', 'publish'],
}
contain dispatcher
Default value: []
keep_alive_timeout
Data type: Optional[Integer[0]]
If specified, sets the value for DispatcherKeepAliveTimeout
. Default For details see the Dispatcher documentation.
Default value: undef
no_cannon_url
Data type: Optional[Boolean]
If specified, sets the value for DispatcherNoCanonURL
. For details see the Dispatcher documentation.
Default value: undef
vhosts
Data type: Array[String]
A list of Apache VirthalHosts names. If specified a then the necessary fragment to load the Dispatcher will be appended to that conf file. If the virtual host is not in the catalog, an error will occur.
The custom fragment that is added:
<IfModule disp_apache2.c>
SetHandler dispatcher-handler
</IfModule>
For example, to load the Dispatcher module in the default Apache VirtualHost:
class { 'dispatcher' :
module_file => '/path/to/module/file.so',
vhosts => ['default'],
}
contain dispatcher
Default value: []
Defined types
dispatcher::farm
This will configure an AEM Dispatcher Farm instance on the node. Farms require a minimum set of configuation details to properly function. These are the renderers
, filters
, and cache
.
The remainder of the paramers have provided, reasonable defaults.
Examples
dispatcher::farm { 'publish' :
renderers => [
{ hostname => 'localhost', port => 4503 },
],
filters => [
{ allow => false,
rank => 1,
url => { regex => true, pattern => '.*' },
},
],
cache => {
docroot => '/var/www/html',
rules => [
{ rank => 1, glob => '*.html', allow => true },
],
allowed_clients => [
{ rank => 1, glob => '*', allow => false },
{ rank => 2, glob => '127.0.0.1', allow => true },
],
}
}
Parameters
The following parameters are available in the dispatcher::farm
defined type.
renderers
Data type: Array[Dispatcher::Farm::Renderer]
Specifes an array of renderers that to which this Farm will dispatch requests. Used to create the /renders directive. See the
Dispatcher::Farm::Renderer
documentation for details on the parameter's structure.
Default value: lookup("dispatcher::farm::${name}::renderers", Array[Dispatcher::Farm::Renderer], 'deep')
filters
Data type: Array[Dispatcher::Farm::Filter]
Specifies an array of filters that will be applied to the incoming requests. Used to create the /filter directive. See the
Dispatcher::Farm::Filter
documentation for details on the parameter's structure.
Default value: lookup("dispatcher::farm::${name}::filters", Array[Dispatcher::Farm::Filter], 'deep')
cache
Data type: Dispatcher::Farm::Cache
Configures the /cache directive for the farm. See the Dispatcher::Farm::Cache
documentation for details on the parameter's structure.
Default value: lookup("dispatcher::farm::${name}::cache", Dispatcher::Farm::Cache, 'deep')
ensure
Data type: Enum['absent', 'present']
Specifies if the farm host is present or absent.
Default value: lookup("dispatcher::farm::${name}::ensure", Enum['absent', 'present'], 'first', 'present')
priority
Data type: Integer[0]
Defines the priority for this farm. The priority will impact the order the file farm is loaded by the dispatcher module, and therefore has implications for host resolution and request processing. For more information see the Dispatcher farm documentation.
Default value: lookup("dispatcher::farm::${name}::priority", Integer[0], 'first', 0)
virtualhosts
Data type: Array[String]
Specifies the list of virtual hosts for which this farm will process requests. Used to create the /virtualhosts directive. See the Dispatcher documentation for more details.
Default value: lookup("dispatcher::farm::${name}::virtualhosts", Array[String], 'deep', [$name])
clientheaders
Data type: Array[String]
Specifies the list of headers which will be passed through. Used to create the /clientheaders directive. See the Dispatcher documentation for more details.
Default value: lookup("dispatcher::farm::${name}::clientheaders", Array[String], 'deep', [])
sessionmanagement
Data type: Optional[Dispatcher::Farm::SessionManagement]
Configures the /sessionmanagement directive for a farm, used for seecuring cache access. See the
Dispatcher::Farm::SessionManagement
documentation for details on the parameter's structure.
Default value: lookup("dispatcher::farm::${name}::sessionmanagement", Optional[Dispatcher::Farm::SessionManagement], 'first', undef)
vanity_urls
Data type: Optional[Dispatcher::Farm::VanityUrls]
Configures the /vanity_urls directive for a farm. See the Dispatcher::Farm::VanityUrls
documentation for
details on the parameter's structure.
Default value: lookup("dispatcher::farm::${name}::vanity_urls", Optional[Dispatcher::Farm::VanityUrls], 'first', undef)
propagate_synd_post
Data type: Boolean
Sets the flag for the /propagateSyndPost directive. See the Dispatcher documentation for more details.
Default value: lookup("dispatcher::farm::${name}::propagate_synd_post", Boolean, 'first', false)
auth_checker
Data type: Optional[Dispatcher::Farm::AuthChecker]
Configures the /auth_checker directive for a farm. See the Dispatcher::Farm::AuthChecker
documentation for
more details.
Default value: lookup("dispatcher::farm::${name}::auth_checker", Optional[Dispatcher::Farm::AuthChecker], 'deep', undef)
statistics_categories
Data type: Optional[Array[Dispatcher::Farm::StatisticsCategory]]
Configures the /statistics directive for a farm. See the Dispatcher::Farm::StatisticsCategory
documentation for
more details.
Default value: lookup("dispatcher::farm::${name}::statistics_categories", Optional[Array[Dispatcher::Farm::StatisticsCategory]], 'deep', undef)
sticky_connections
Data type: Optional[Dispatcher::Farm::StickyConnection]
Configures either the /stickyConnectionsFor or /stickyConnections directive for a farm. See the
Dispatcher::Farm::StickyConnection
documentation for more details.
Default value: lookup("dispatcher::farm::${name}::sticky_connections", Optional[Dispatcher::Farm::StickyConnection], 'deep', undef)
health_check
Data type: Optional[String[1]]
If specified, sets the /health_check url for a farm. See the Dispatcher documentation for details on the directive's use.
Default value: lookup("dispatcher::farm::${name}::health_check", Optional[String[1]], 'first', undef)
retry_delay
Data type: Optional[Integer[0]]
If specified, sets the /retryDelay directive for a farm. See the Dispatcher documentation for details on the directive's use.
Default value: lookup("dispatcher::farm::${name}::retry_delay", Optional[Integer[0]], 'first', undef)
number_of_retries
Data type: Optional[Integer[0]]
If specified, sets the /numberOfRetries directive for a farm. See the Dispatcher documentation for details on the directive's use.
Default value: lookup("dispatcher::farm::${name}::number_of_retries", Optional[Integer[0]], 'first', undef)
unavailable_penalty
Data type: Optional[Integer[0]]
If specified, sets the /unavailablePenalty directive for a farm. See the Dispatcher documentation for details on the directive's use.
Default value: lookup("dispatcher::farm::${name}::unavailable_penalty", Optional[Integer[0]], 'first', undef)
failover
Data type: Boolean
If specified, sets the /failover directive for a farm. See the Dispatcher documentation for details on the directive's use.
Default value: lookup("dispatcher::farm::${name}::failover", Boolean, 'first', false)
secure
Data type: Boolean
If set to true
, will enable a set of rules intended to secure this farm based on the the Dispatcher Security Checklist.
The following rules are applied when this flag is set.
This filter will defined and positioned first in the list, providing a default security filter:
/0000 { /type "deny" /url '.*' }
These filters will be appended to the end of the filter list. Any user-defined filters will have a lower rank, and therefore will be listed before these. The intent of these filters is to protect the system from inadvernt access to code, crawling, or systems which should be secure in production.
/9993 { /type "deny" /url "/crx/*" }
/9994 { /type "deny" /url "/system/*" }
/9995 { /type "deny" /url "/apps/*" }
/9996 { /type "deny" /selectors '(feed|rss|pages|languages|blueprint|infinity|tidy|sysview|docview|query|[0-9-]+|jcr:content)' /extension '(json|xml|html|feed)' }
/9997 { /type "deny" /method "GET" /query "debug=*" }
/9998 { /type "deny" /method "GET" /query "wcmmode=*" }
/9999 { /type "deny" /extension "jsp" }
A default deny rule for cache invalidation will be added; it is expected there will be additional user-defined value(s) for approved clients.
/cache {
...
/allowedClients {
/0000 { /type "deny" /glob "*" }
}
}
Default value: lookup("dispatcher::farm::${name}::secure", Boolean, 'first', false)
Data types
Dispatcher::Farm::AuthChecker
AuthChecker attributes hash. This type is passed to a dispatcher::farm
to confgure the auth_checker parameter. This will define the properties as specified in the Dispatcher documentation for caching secured content.
Parameters:
- url:
StdLib::Absolutepath
- filters:
Array[Dispatcher::Farm::GlobRule]
- headers:
Array[Dispatcher::Farm::GlobRule]
Alias of Struct[{ url => Stdlib::Absolutepath, filters => Array[Dispatcher::Farm::GlobRule], headers => Array[Dispatcher::Farm::GlobRule], }]
Dispatcher::Farm::Cache
The Cache attributes structure. This type is passed to a dispatcher::farm
to confgure the cache parameter. This will define the properties as specified in the Dispatcher documentation for caching content.
Parameters:
- docroot:
StdLib::Absolutepath
- rules:
Array[Dispatcher::Farm::GlobRule]
- allowed_clients:
Array[Dispatcher::Farm::GlobRule]
- manage_docroot
Boolean
- statfile
Stdlib::Absolutepath
- serve_stale_on_error:
Boolean
- allow_authorized
Boolean
- statfileslevel
Integer[0]
- invalidate
Array[Dispatcher::Farm::GlobRule]
- invalidate_handler
Stdlib::Absolutepath
- ignore_url_params
Array[Dispatcher::Farm::GlobRule
- headers
Array[String]
- mode
Stdlib::Filemode
- grace_period
Integer[0]
- enable_ttl
Boolean
Alias of Struct[{ docroot => Stdlib::Absolutepath, rules => Array[Dispatcher::Farm::GlobRule], allowed_clients => Array[Dispatcher::Farm::GlobRule], Optional[manage_docroot] => Boolean, Optional[statfile] => Stdlib::Absolutepath, Optional[serve_stale_on_error] => Boolean, Optional[allow_authorized] => Boolean, Optional[statfileslevel] => Integer[0], Optional[invalidate] => Array[Dispatcher::Farm::GlobRule], Optional[invalidate_handler] => Stdlib::Absolutepath, Optional[ignore_url_params] => Array[Dispatcher::Farm::GlobRule], Optional[headers] => Array[String], Optional[mode] => Stdlib::Filemode, Optional[grace_period] => Integer[0], Optional[enable_ttl] => Boolean, }]
Dispatcher::Farm::Filter
Filter attributes hash.
Filter attributes hash. This type is passed to a dispatcher::farm
to confgure the filter parameter. This will define the properties as specified in the Dispatcher documentation for granting access to content.
Parameters:
- rank:
Integer[0]
- allow:
Boolean
- url:
Dispatcher::Farm::Filter::Pattern
- method:
Dispatcher::Farm::Filter::Pattern
- query:
Dispatcher::Farm::Filter::Pattern
- protocol:
Dispatcher::Farm::Filter::Pattern
- path:
Dispatcher::Farm::Filter::Pattern
- selectors:
Dispatcher::Farm::Filter::Pattern
- extension:
Dispatcher::Farm::Filter::Pattern
- suffix:
Dispatcher::Farm::Filter::Pattern
Alias of Struct[{ rank => Integer[0], allow => Boolean, Optional[url] => Dispatcher::Farm::Filter::Pattern, Optional[method] => Dispatcher::Farm::Filter::Pattern, Optional[query] => Dispatcher::Farm::Filter::Pattern, Optional[protocol] => Dispatcher::Farm::Filter::Pattern, Optional[path] => Dispatcher::Farm::Filter::Pattern, Optional[selectors] => Dispatcher::Farm::Filter::Pattern, Optional[extension] => Dispatcher::Farm::Filter::Pattern, Optional[suffix] => Dispatcher::Farm::Filter::Pattern, }]
Dispatcher::Farm::Filter::Pattern
This structure is used to configure an individual filter for use in the Dispatcher::Farm::Filter
attributes.
Parameters:
- regex:
Boolean
- pattern:
String
Alias of Struct[{ regex => Boolean, pattern => String }]
Dispatcher::Farm::GlobRule
This structure represents a glob that can be used across many of the other struct types. It's used to enforce and standardize their parameters.
Parameters:
- rank:
Integer[0]
- glob:
String
- allow:
Boolean
Alias of Struct[{ rank => Integer[0], glob => String, allow => Boolean, }]
Dispatcher::Farm::Renderer
The Renderer attributes structure. This type is passed to a dispatcher::farm
to confgure the renders parameter. This will define the properties as specified in the Dispatcher documentation for defining page renderers.
Parameters:
- hostname:
Stdlib::Host:
- port:
Stdlib::Port:
- timeout:
Integer[0]:
- receive_timeout:
Integer[0]:
- ipv4:
Boolean:
- secure:
Boolean:
- always_resolve:
Boolean:
Alias of Struct[{ hostname => Stdlib::Host, port => Stdlib::Port, Optional[timeout] => Integer[0], Optional[receive_timeout] => Integer[0], Optional[ipv4] => Boolean, Optional[secure] => Boolean, Optional[always_resolve] => Boolean, }]
Dispatcher::Farm::SessionManagement
The Session Management attributes structure. This type is passed to a dispatcher::farm
to confgure the sessionmanagement parameter. This will define the properties as specified in the Dispatcher documentation for authentication session management.
Parameters:
- directory:
Stdlib::Absolutepath
- encode:
String
- header:
String
- timeout:
Integer[0]
Alias of Struct[{ directory => Stdlib::Absolutepath, Optional[encode] => String, Optional[header] => String, Optional[timeout] => Integer[0], }]
Dispatcher::Farm::StatisticsCategory
The Statistics Category attributes structure. This type is passed to a dispatcher::farm
to confgure the statistics_categories parameter. This will define the properties as specified in the Dispatcher documentation for configuring the load balancer.
Parameters:
- rank:
Integer[0]
- name:
String
- glob:
String
Alias of Struct[{ rank => Integer[0], name => String, glob => String, }]
Dispatcher::Farm::StickyConnection
The SticyConnection attributes structure. This type is passed to a dispatcher::farm
to confgure the sticky_connections parameter. This will define the properties as specified in the Dispatcher documentation for creating sticky connections. Which struct used will determine if /stickyConnectionsFor
or /stickyConnections
is created as a result.
/stickyConnectionsFor
Parameters:
- String[1]
/stickyConnections
Parameters:
- paths:
Array[String]
- domain:
String
- http_only:
Boolean
- secure:
Boolean
Alias of Variant[String[1], Struct[ { paths => Array[String], Optional[domain] => String, Optional[http_only] => Boolean, Optional[secure] => Boolean, } ]]
Dispatcher::Farm::VanityUrls
The Vanity URL attributes structure. This type is passed to a dispatcher::farm
to confgure the vanity_urls parameter. This will define the properties as specified in the Dispatcher documentation for enabling access to Vanity URLs.
Parameters:
- file:
Stdlib::Absolutepath
- delay:
Integer[0]
Alias of Struct[{ file => Stdlib::Absolutepath, delay => Integer[0], }]
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v1.0.0 (2020-04-08)
Added
v0.2.0 (2020-04-06)
Added
- Support SELinux on the docroot for a farm. #13 (bstopp)
- Support automatic loading of module in Virtualhosts. #12 (bstopp)
Fixed
v0.1.0 (2020-04-04)
Added
- Adding support for Changelog generator. #11 (bstopp)
- Update to PDK 1.17 #10 (bstopp)
- Adding Documentation #9 (bstopp)
- Update to PDK 1.16 #7 (bstopp)
- adding adobeinc puppet forge password to travis. #6 (filmaj)
- Update to PDK 1.15 #3 (bstopp)
- SELinux Support #2 (bstopp)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>= 5.0.0 < 7.0.0)
- puppetlabs/concat (>= 5.0.0 < 7.0.0)
- puppetlabs/apache (>= 4.0.0 < 6.0.0)
- puppetlabs/selinux_core (>= 1.0.0 < 2.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2019 Adobe Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.