Merge branch 'master' of sourcecode.confdroid.com:12ww1160/cd_haproxy into HEAD

This commit is contained in:
Jenkins ConfDroid
2021-01-04 16:23:30 +01:00
4 changed files with 154 additions and 226 deletions

0
.scannerwork/.sonar_lock Normal file
View File

View File

@@ -0,0 +1,6 @@
projectKey=confdroid_kubernetes
serverUrl=http://sonarqube.confdroid.com
serverVersion=7.9.1.27448
dashboardUrl=http://sonarqube.confdroid.com/dashboard?id=confdroid_kubernetes
ceTaskId=AXbFBnlxjqhs1DgyZKhw
ceTaskUrl=http://sonarqube.confdroid.com/api/ce/task?id=AXbFBnlxjqhs1DgyZKhw

View File

@@ -61,83 +61,61 @@
<p><a href="https://pipelines.confdroid.com/job/cd_haproxy/"><img <p><a href="https://pipelines.confdroid.com/job/cd_haproxy/"><img
src="https://pipelines.confdroid.com/buildStatus/icon?job=cd_haproxy"></a>|</p> src="https://pipelines.confdroid.com/buildStatus/icon?job=cd_haproxy"></a>|</p>
<h3 id="label-Synopsis">Synopsis</h3> <p>[[<em>TOC</em>]]</p>
<h1 id="label-Synopsis">Synopsis</h1>
<p><code>HA Proxy</code> is a very powerful and popular open source load <p><code>HA Proxy</code> is a very powerful and popular open source load
balanacer to balance incoming requests between multiple instances of web-, balancer to balance incoming requests between multiple instances of web-,
application- or database servers etc.</p> application- or database servers etc.</p>
<p><code>cd_haproxy</code> automates installation and configuration of <p><code>cd_haproxy</code> automates installation and configuration of
<code>HA proxy</code> including self-healing, monitoring and firewall etc.</p> <code>HA proxy</code> including self-healing, monitoring and firewall etc.</p>
<h3 id="label-WARNING">WARNING</h3> <h1 id="label-WARNING">WARNING</h1>
<p><code>**__!!! Attention: Never use this puppet module on systems which have <p><code>**__!!! Attention: Never use this puppet module on systems which have
been previously configured manually. It is impossible to predict how and been previously configured manually. It is impossible to predict how and
what would have been configured, hence previuos configurations outside the what would have been configured, hence previous configurations outside the
scope of this module may be overwritten! Automated configurations require a scope of this module may be overwritten! Automated configurations require a
test environment to verify that the module suits the purpose intended by test environment to verify that the module suits the purpose intended by
the user, as well as tune the parameters, before deploying into live the user, as well as tune the parameters, before deploying into live
production!!! __**</code></p> production!!! __**</code></p>
<h3 id="label-Table+of+Contents">Table of Contents</h3> <h1 id="label-Features">Features</h1>
<p>INSTALLATION</p>
<ul><li> <ul><li>
<p><a href="#label-Features">Features</a></p> <p>install rpm binaries</p>
</li><li>
<p><a
href="https://gitlab.confdroid.com/12WW1160/cd_haproxy/blob/master/REPOSTRUCTURE.md">Repo
Structure</a></p>
</li><li>
<p><a href="#label-Repo+documentation"> Repo Documentation</a></p>
</li><li>
<p><a href="#label-Dependencies">Dependencies</a></p>
</li><li>
<p><a href="#label-Deployment">Deployment</a></p>
</li><li>
<p><a href="#label-Native+puppet+deployment">native Puppet deployment</a></p>
</li><li>
<p><a href="#label-Through+foreman">through Foreman</a></p>
</li><li>
<p><a href="#label-Parameters">Parameters</a></p>
</li><li>
<p><a href="#label-Mandatory+parameters">Mandatory Parameters</a></p>
</li><li>
<p><a href="#label-Optional+parameters">Optional Parameters</a></p>
</li><li>
<p><a href="#label-Selinux">SELINUX</a></p>
</li><li>
<p><a href="#label-Known+problems">Known Problems</a></p>
</li><li>
<p><a href="#label-Support">Support</a></p>
</li><li>
<p><a href="#label-Tests">Tests</a></p>
</li><li>
<p><a href="https://confdroid.com/contact/">Contact Us</a></p>
</li><li>
<p><a href="#label-Disclaimer">Disclaimer</a></p>
</li></ul> </li></ul>
<h3 id="label-Features">Features</h3> <p>CONFIGURATION</p>
<ul><li>
<p>manage haproxy user</p>
</li><li>
<p>manage directories (file system permissions, selinux context)</p>
</li><li>
<p>manage files (file system permissions, content, selinux context)</p>
</li><li>
<p>manage proxy instances through a define</p>
</li><li>
<p>frontend options</p>
</li><li>
<p>backend options</p>
</li><li>
<p>ACL options</p>
</li></ul>
<p>INSTALLATION * install rpm binaries</p> <p>SERVICE</p>
<ul><li>
<p>manage haproxy service</p>
</li><li>
<p>restart service after changes in the configuration</p>
</li></ul>
<p>CONFIGURATION * manage haproxy user * manage directories (file system <h1 id="label-Puppet+Documentation"><a href="docs/index.html">Puppet Documentation</a></h1>
permissions, selinux context) * manage files (file system permissions,
content, selinux context) * manage proxy instances through a define *
frontend options * backend options * ACL options</p>
<p>SERVICE * manage haproxy service * restart service after changes in the <h1 id="label-Dependencies">Dependencies</h1>
configuration</p>
<h3 id="label-Repo+Structure">Repo Structure</h3>
<p>Repostructure has moved to REPOSTRUCTURE.md in repo.</p>
<h3 id="label-Repo+Documentation">Repo Documentation</h3>
<p>See the full Puppet documentation in docs/index.html</p>
<h3 id="label-Dependencies">Dependencies</h3>
<p>All dependencies must be included in the catalogue.</p> <p>All dependencies must be included in the catalogue.</p>
<ul><li> <ul><li>
@@ -150,9 +128,9 @@ for managing yum base repos</p>
managing file fragments</p> managing file fragments</p>
</li></ul> </li></ul>
<h3 id="label-Deployment">Deployment</h3> <h1 id="label-Deployment">Deployment</h1>
<h5 id="label-native+Puppet+deployment">native Puppet deployment</h5> <h2 id="label-native+Puppet+deployment">native Puppet deployment</h2>
<p>via site.pp or nodes.pp</p> <p>via site.pp or nodes.pp</p>
@@ -160,41 +138,30 @@ managing file fragments</p>
include cd_haproxy include cd_haproxy
}</code></pre> }</code></pre>
<h4 id="label-through+Foreman-3A">through Foreman:</h4> <h2 id="label-through+Foreman">through Foreman</h2>
<p>In order to apply parameters through Foreman, <p>Add params.pp to the host or hostgroup.</p>
<strong>cd_haproxy::params</strong> must be added to the host or hostgroup
in question.</p>
<p>See <a <p>See <a
href="https://confdroid.com/2017/05/deploying-our-puppet-modules/">more href="https://confdroid.com/2017/05/deploying-our-puppet-modules/">details</a>.</p>
details about class deployment on Confdroid.com</a>.</p>
<h3 id="label-Parameters">Parameters</h3> <h1 id="label-Documentation">Documentation</h1>
<p>The following parameters are editable via params.pp or through ENC <h2 id="label-Parameters">Parameters</h2>
(<strong>recommended</strong>). Values changed will take immediate effect
at next puppet run. Services will be restarted where neccessary.</p>
<p>The <a href="https://confdroid.com/2017/08/cd_haproxy-parameters/">full <p>The parameters are defined and described in <code>params.pp</code>. The
list of Parameters</a> is available <a documentation is provided via <code>puppet strings</code> in HTML format,
href="https://confdroid.com/2017/08/cd_haproxy-parameters/">here</a> and in please see <code>doc/index.html</code> via web browser.</p>
the docs folder in the software repo.</p>
<h4 id="label-Mandatory+Parameters">Mandatory Parameters</h4> <h1 id="label-Proxy+Configuration">Proxy Configuration</h1>
<ul><li>
<p><code>hy_host_fqdn</code>: Specify the FQDN of the host(s) where HA proxy
should be running. The module will install it only on the host in question.</p>
</li></ul>
<h4 id="label-Optional+Parameters">Optional Parameters</h4> <h2 id="label-Via+Define">Via Define</h2>
<h3 id="label-Proxy+Configuration">Proxy Configuration</h3> <p>The proxy instances are configured in
<code>/etc/haproxy/haproxy.cfg</code>, which is concatenated from various
<p>The proxy instances are configured in /etc/haproxy/haproxy.cfg, which is templates through a define in this puppet module. In order to create proxy
concatenated from various templates through a define in this puppet module. instances, you will need an external class, which addresses the define,
In order to create proxy instances, you will need an external class, which like so:</p>
addresses the define, like so:</p>
<pre class="code ruby"><code class="ruby">cd_haproxy::server::proxy { &#39;testing&#39;: <pre class="code ruby"><code class="ruby">cd_haproxy::server::proxy { &#39;testing&#39;:
haproxy_fqdn =&gt; &#39;node.example.net&#39;, haproxy_fqdn =&gt; &#39;node.example.net&#39;,
@@ -205,47 +172,42 @@ addresses the define, like so:</p>
backend_name =&gt; &#39;test01-backend&#39;, backend_name =&gt; &#39;test01-backend&#39;,
}</code></pre> }</code></pre>
<p>This allows the puppet module to create the sections in the configuration <p>This class should be placed in an internal configuration repo specific to
file as required. The haproxy service will be restarted after the changes your environment.</p>
in the configuration file are made. <code>haproxy_fqdn</code>
<strong>must</strong> contain the fqdn of the haproxy
<strong>server</strong> where this should be configured, otherwise the
templates are not being populated. Multiple ACLs need to be added as array,
and will create one line each.</p>
<h3 id="label-SELINUX">SELINUX</h3> <h1 id="label-SELINUX">SELINUX</h1>
<p>All files and directories are configured with correct selinux context. If <p>All files and directories are configured with correct selinux context. If
selinux is disabled, these contexts are ignored.</p> selinux is disabled, these contexts are ignored.</p>
<h3 id="label-Known+Problems">Known Problems</h3> <h1 id="label-Known+Problems">Known Problems</h1>
<h3 id="label-Support">Support</h3> <h1 id="label-Support">Support</h1>
<ul><li> <ul><li>
<p>OS: CentOS 7</p> <p>OS: CentOS 7</p>
</li><li> </li><li>
<p>Puppet 5.x</p> <p>Puppet 5.x</p>
</li></ul> </li></ul>
<h3 id="label-Tests">Tests</h3> <h1 id="label-Tests">Tests</h1>
<ul><li> <ul><li>
<p>Puppet Lint</p> <p>Puppet Lint</p>
</li><li> </li><li>
<p>excluded tests:</p> <p>excluded tests:</p>
<ul><li> <ul><li>
<p><code>--no-class_inherits_from_params_class-check</code>:relavant only to <p><code>--no-class_inherits_from_params_class-check</code>:relevant only to
non-supported outdated puppet versions</p> non-supported outdated puppet versions</p>
</li><li> </li><li>
<p><code>--no-variable_scope-check</code>: not applicable as we are inheriting <p><code>--no-variable_scope-check</code>: not applicable as we are inheriting
parameters from params class. the lint check does not distinguish between parameters from the params class. the lint check does not distinguish
facts and inherited parameters.</p> between facts and inherited parameters.</p>
</li><li> </li><li>
<p><code>--no-80chars-check</code>: it is not always possible to stay within <p><code>--no-80chars-check</code>: it is not always possible to stay within
80 characters, although typically only occurring on the parameter vault 80 characters, although typically only occurring on the parameter vault
<code>params.pp</code>.</p> <code>params.pp</code>.</p>
</li><li> </li><li>
<p><code>--no-arrow_alignment-check</code>: this check leads to actually not <p><code>--no-arrow_alignment-check</code>: this check leads to actually not
having am easily readable arrow alignment, as this checks <code>per having easily readable arrow alignments, as this checks <code>per
block</code>, not per class.</p> block</code>, not per class.</p>
</li></ul> </li></ul>
</li><li> </li><li>
@@ -253,17 +215,16 @@ block</code>, not per class.</p>
</li><li> </li><li>
<p>ERB Template Parser</p> <p>ERB Template Parser</p>
</li><li> </li><li>
<p>Test for unwanted UTF8 files in the Puppet code as this causes problems <p>Test for unwanted UTF8 files</p>
with PuppetDB (see tests/UTF_Files)</p>
<h3 id="label-Contact+Us">Contact Us</h3>
<p><a href="https://confdroid.com/contact/">contact Us</a></p>
</li></ul> </li></ul>
<h3 id="label-Disclaimer">Disclaimer</h3> <h1 id="label-Contact+Us">Contact Us</h1>
<p>ConfDroid as entity is entirely independent from Puppet. We provide custom <p><a href="https://confdroid.com/contact/">contact Us</a></p>
<h1 id="label-Disclaimer">Disclaimer</h1>
<p>ConfDroid as entity is independent from Puppet. We provide custom
configuration modules, written for specific purposes and specific configuration modules, written for specific purposes and specific
environments. The modules are tested and supported only as documented, and environments. The modules are tested and supported only as documented, and
require testing in designated environments (i.e. lab or development require testing in designated environments (i.e. lab or development

View File

@@ -61,83 +61,61 @@
<p><a href="https://pipelines.confdroid.com/job/cd_haproxy/"><img <p><a href="https://pipelines.confdroid.com/job/cd_haproxy/"><img
src="https://pipelines.confdroid.com/buildStatus/icon?job=cd_haproxy"></a>|</p> src="https://pipelines.confdroid.com/buildStatus/icon?job=cd_haproxy"></a>|</p>
<h3 id="label-Synopsis">Synopsis</h3> <p>[[<em>TOC</em>]]</p>
<h1 id="label-Synopsis">Synopsis</h1>
<p><code>HA Proxy</code> is a very powerful and popular open source load <p><code>HA Proxy</code> is a very powerful and popular open source load
balanacer to balance incoming requests between multiple instances of web-, balancer to balance incoming requests between multiple instances of web-,
application- or database servers etc.</p> application- or database servers etc.</p>
<p><code>cd_haproxy</code> automates installation and configuration of <p><code>cd_haproxy</code> automates installation and configuration of
<code>HA proxy</code> including self-healing, monitoring and firewall etc.</p> <code>HA proxy</code> including self-healing, monitoring and firewall etc.</p>
<h3 id="label-WARNING">WARNING</h3> <h1 id="label-WARNING">WARNING</h1>
<p><code>**__!!! Attention: Never use this puppet module on systems which have <p><code>**__!!! Attention: Never use this puppet module on systems which have
been previously configured manually. It is impossible to predict how and been previously configured manually. It is impossible to predict how and
what would have been configured, hence previuos configurations outside the what would have been configured, hence previous configurations outside the
scope of this module may be overwritten! Automated configurations require a scope of this module may be overwritten! Automated configurations require a
test environment to verify that the module suits the purpose intended by test environment to verify that the module suits the purpose intended by
the user, as well as tune the parameters, before deploying into live the user, as well as tune the parameters, before deploying into live
production!!! __**</code></p> production!!! __**</code></p>
<h3 id="label-Table+of+Contents">Table of Contents</h3> <h1 id="label-Features">Features</h1>
<p>INSTALLATION</p>
<ul><li> <ul><li>
<p><a href="#label-Features">Features</a></p> <p>install rpm binaries</p>
</li><li>
<p><a
href="https://gitlab.confdroid.com/12WW1160/cd_haproxy/blob/master/REPOSTRUCTURE.md">Repo
Structure</a></p>
</li><li>
<p><a href="#label-Repo+documentation"> Repo Documentation</a></p>
</li><li>
<p><a href="#label-Dependencies">Dependencies</a></p>
</li><li>
<p><a href="#label-Deployment">Deployment</a></p>
</li><li>
<p><a href="#label-Native+puppet+deployment">native Puppet deployment</a></p>
</li><li>
<p><a href="#label-Through+foreman">through Foreman</a></p>
</li><li>
<p><a href="#label-Parameters">Parameters</a></p>
</li><li>
<p><a href="#label-Mandatory+parameters">Mandatory Parameters</a></p>
</li><li>
<p><a href="#label-Optional+parameters">Optional Parameters</a></p>
</li><li>
<p><a href="#label-Selinux">SELINUX</a></p>
</li><li>
<p><a href="#label-Known+problems">Known Problems</a></p>
</li><li>
<p><a href="#label-Support">Support</a></p>
</li><li>
<p><a href="#label-Tests">Tests</a></p>
</li><li>
<p><a href="https://confdroid.com/contact/">Contact Us</a></p>
</li><li>
<p><a href="#label-Disclaimer">Disclaimer</a></p>
</li></ul> </li></ul>
<h3 id="label-Features">Features</h3> <p>CONFIGURATION</p>
<ul><li>
<p>manage haproxy user</p>
</li><li>
<p>manage directories (file system permissions, selinux context)</p>
</li><li>
<p>manage files (file system permissions, content, selinux context)</p>
</li><li>
<p>manage proxy instances through a define</p>
</li><li>
<p>frontend options</p>
</li><li>
<p>backend options</p>
</li><li>
<p>ACL options</p>
</li></ul>
<p>INSTALLATION * install rpm binaries</p> <p>SERVICE</p>
<ul><li>
<p>manage haproxy service</p>
</li><li>
<p>restart service after changes in the configuration</p>
</li></ul>
<p>CONFIGURATION * manage haproxy user * manage directories (file system <h1 id="label-Puppet+Documentation"><a href="docs/index.html">Puppet Documentation</a></h1>
permissions, selinux context) * manage files (file system permissions,
content, selinux context) * manage proxy instances through a define *
frontend options * backend options * ACL options</p>
<p>SERVICE * manage haproxy service * restart service after changes in the <h1 id="label-Dependencies">Dependencies</h1>
configuration</p>
<h3 id="label-Repo+Structure">Repo Structure</h3>
<p>Repostructure has moved to REPOSTRUCTURE.md in repo.</p>
<h3 id="label-Repo+Documentation">Repo Documentation</h3>
<p>See the full Puppet documentation in docs/index.html</p>
<h3 id="label-Dependencies">Dependencies</h3>
<p>All dependencies must be included in the catalogue.</p> <p>All dependencies must be included in the catalogue.</p>
<ul><li> <ul><li>
@@ -150,9 +128,9 @@ for managing yum base repos</p>
managing file fragments</p> managing file fragments</p>
</li></ul> </li></ul>
<h3 id="label-Deployment">Deployment</h3> <h1 id="label-Deployment">Deployment</h1>
<h5 id="label-native+Puppet+deployment">native Puppet deployment</h5> <h2 id="label-native+Puppet+deployment">native Puppet deployment</h2>
<p>via site.pp or nodes.pp</p> <p>via site.pp or nodes.pp</p>
@@ -160,41 +138,30 @@ managing file fragments</p>
include cd_haproxy include cd_haproxy
}</code></pre> }</code></pre>
<h4 id="label-through+Foreman-3A">through Foreman:</h4> <h2 id="label-through+Foreman">through Foreman</h2>
<p>In order to apply parameters through Foreman, <p>Add params.pp to the host or hostgroup.</p>
<strong>cd_haproxy::params</strong> must be added to the host or hostgroup
in question.</p>
<p>See <a <p>See <a
href="https://confdroid.com/2017/05/deploying-our-puppet-modules/">more href="https://confdroid.com/2017/05/deploying-our-puppet-modules/">details</a>.</p>
details about class deployment on Confdroid.com</a>.</p>
<h3 id="label-Parameters">Parameters</h3> <h1 id="label-Documentation">Documentation</h1>
<p>The following parameters are editable via params.pp or through ENC <h2 id="label-Parameters">Parameters</h2>
(<strong>recommended</strong>). Values changed will take immediate effect
at next puppet run. Services will be restarted where neccessary.</p>
<p>The <a href="https://confdroid.com/2017/08/cd_haproxy-parameters/">full <p>The parameters are defined and described in <code>params.pp</code>. The
list of Parameters</a> is available <a documentation is provided via <code>puppet strings</code> in HTML format,
href="https://confdroid.com/2017/08/cd_haproxy-parameters/">here</a> and in please see <code>doc/index.html</code> via web browser.</p>
the docs folder in the software repo.</p>
<h4 id="label-Mandatory+Parameters">Mandatory Parameters</h4> <h1 id="label-Proxy+Configuration">Proxy Configuration</h1>
<ul><li>
<p><code>hy_host_fqdn</code>: Specify the FQDN of the host(s) where HA proxy
should be running. The module will install it only on the host in question.</p>
</li></ul>
<h4 id="label-Optional+Parameters">Optional Parameters</h4> <h2 id="label-Via+Define">Via Define</h2>
<h3 id="label-Proxy+Configuration">Proxy Configuration</h3> <p>The proxy instances are configured in
<code>/etc/haproxy/haproxy.cfg</code>, which is concatenated from various
<p>The proxy instances are configured in /etc/haproxy/haproxy.cfg, which is templates through a define in this puppet module. In order to create proxy
concatenated from various templates through a define in this puppet module. instances, you will need an external class, which addresses the define,
In order to create proxy instances, you will need an external class, which like so:</p>
addresses the define, like so:</p>
<pre class="code ruby"><code class="ruby">cd_haproxy::server::proxy { &#39;testing&#39;: <pre class="code ruby"><code class="ruby">cd_haproxy::server::proxy { &#39;testing&#39;:
haproxy_fqdn =&gt; &#39;node.example.net&#39;, haproxy_fqdn =&gt; &#39;node.example.net&#39;,
@@ -205,47 +172,42 @@ addresses the define, like so:</p>
backend_name =&gt; &#39;test01-backend&#39;, backend_name =&gt; &#39;test01-backend&#39;,
}</code></pre> }</code></pre>
<p>This allows the puppet module to create the sections in the configuration <p>This class should be placed in an internal configuration repo specific to
file as required. The haproxy service will be restarted after the changes your environment.</p>
in the configuration file are made. <code>haproxy_fqdn</code>
<strong>must</strong> contain the fqdn of the haproxy
<strong>server</strong> where this should be configured, otherwise the
templates are not being populated. Multiple ACLs need to be added as array,
and will create one line each.</p>
<h3 id="label-SELINUX">SELINUX</h3> <h1 id="label-SELINUX">SELINUX</h1>
<p>All files and directories are configured with correct selinux context. If <p>All files and directories are configured with correct selinux context. If
selinux is disabled, these contexts are ignored.</p> selinux is disabled, these contexts are ignored.</p>
<h3 id="label-Known+Problems">Known Problems</h3> <h1 id="label-Known+Problems">Known Problems</h1>
<h3 id="label-Support">Support</h3> <h1 id="label-Support">Support</h1>
<ul><li> <ul><li>
<p>OS: CentOS 7</p> <p>OS: CentOS 7</p>
</li><li> </li><li>
<p>Puppet 5.x</p> <p>Puppet 5.x</p>
</li></ul> </li></ul>
<h3 id="label-Tests">Tests</h3> <h1 id="label-Tests">Tests</h1>
<ul><li> <ul><li>
<p>Puppet Lint</p> <p>Puppet Lint</p>
</li><li> </li><li>
<p>excluded tests:</p> <p>excluded tests:</p>
<ul><li> <ul><li>
<p><code>--no-class_inherits_from_params_class-check</code>:relavant only to <p><code>--no-class_inherits_from_params_class-check</code>:relevant only to
non-supported outdated puppet versions</p> non-supported outdated puppet versions</p>
</li><li> </li><li>
<p><code>--no-variable_scope-check</code>: not applicable as we are inheriting <p><code>--no-variable_scope-check</code>: not applicable as we are inheriting
parameters from params class. the lint check does not distinguish between parameters from the params class. the lint check does not distinguish
facts and inherited parameters.</p> between facts and inherited parameters.</p>
</li><li> </li><li>
<p><code>--no-80chars-check</code>: it is not always possible to stay within <p><code>--no-80chars-check</code>: it is not always possible to stay within
80 characters, although typically only occurring on the parameter vault 80 characters, although typically only occurring on the parameter vault
<code>params.pp</code>.</p> <code>params.pp</code>.</p>
</li><li> </li><li>
<p><code>--no-arrow_alignment-check</code>: this check leads to actually not <p><code>--no-arrow_alignment-check</code>: this check leads to actually not
having am easily readable arrow alignment, as this checks <code>per having easily readable arrow alignments, as this checks <code>per
block</code>, not per class.</p> block</code>, not per class.</p>
</li></ul> </li></ul>
</li><li> </li><li>
@@ -253,17 +215,16 @@ block</code>, not per class.</p>
</li><li> </li><li>
<p>ERB Template Parser</p> <p>ERB Template Parser</p>
</li><li> </li><li>
<p>Test for unwanted UTF8 files in the Puppet code as this causes problems <p>Test for unwanted UTF8 files</p>
with PuppetDB (see tests/UTF_Files)</p>
<h3 id="label-Contact+Us">Contact Us</h3>
<p><a href="https://confdroid.com/contact/">contact Us</a></p>
</li></ul> </li></ul>
<h3 id="label-Disclaimer">Disclaimer</h3> <h1 id="label-Contact+Us">Contact Us</h1>
<p>ConfDroid as entity is entirely independent from Puppet. We provide custom <p><a href="https://confdroid.com/contact/">contact Us</a></p>
<h1 id="label-Disclaimer">Disclaimer</h1>
<p>ConfDroid as entity is independent from Puppet. We provide custom
configuration modules, written for specific purposes and specific configuration modules, written for specific purposes and specific
environments. The modules are tested and supported only as documented, and environments. The modules are tested and supported only as documented, and
require testing in designated environments (i.e. lab or development require testing in designated environments (i.e. lab or development