Files
confdroid_haproxy/doc/index.html

241 lines
7.2 KiB
HTML
Raw Normal View History

2018-04-24 17:07:21 +02:00
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
File: README
2018-12-07 15:09:55 +01:00
&mdash; Documentation by YARD 0.9.16
2018-04-24 17:07:21 +02:00
</title>
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
<script type="text/javascript" charset="utf-8">
pathId = "";
relpath = '';
</script>
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="puppet_class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="_index.html">Index</a> &raquo;
<span class="title">File: README</span>
</div>
<div id="search">
<a class="full_list_link" id="puppet_class_list_link"
href="puppet_class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><div id='filecontents'>
2020-12-01 19:41:57 +01:00
<p><a href="https://pipelines.confdroid.com/job/cd_haproxy/"><img
2020-12-01 19:43:30 +01:00
src="https://pipelines.confdroid.com/buildStatus/icon?job=cd_haproxy"></a>|</p>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<p>[[<em>TOC</em>]]</p>
<h1 id="label-Synopsis">Synopsis</h1>
2018-04-24 17:07:21 +02:00
<p><code>HA Proxy</code> is a very powerful and popular open source load
2021-01-02 22:35:04 +01:00
balancer to balance incoming requests between multiple instances of web-,
2018-04-24 17:07:21 +02:00
application- or database servers etc.</p>
<p><code>cd_haproxy</code> automates installation and configuration of
<code>HA proxy</code> including self-healing, monitoring and firewall etc.</p>
2021-01-02 22:35:04 +01:00
<h1 id="label-WARNING">WARNING</h1>
2018-04-24 17:07:21 +02:00
<p><code>**__!!! Attention: Never use this puppet module on systems which have
been previously configured manually. It is impossible to predict how and
2021-01-02 22:35:04 +01:00
what would have been configured, hence previous configurations outside the
2018-04-24 17:07:21 +02:00
scope of this module may be overwritten! Automated configurations require a
test environment to verify that the module suits the purpose intended by
the user, as well as tune the parameters, before deploying into live
production!!! __**</code></p>
2021-01-02 22:35:04 +01:00
<h1 id="label-Features">Features</h1>
<p>INSTALLATION</p>
2018-04-24 17:07:21 +02:00
<ul><li>
2021-01-02 22:35:04 +01:00
<p>install rpm binaries</p>
</li></ul>
<p>CONFIGURATION</p>
<ul><li>
<p>manage haproxy user</p>
2018-04-24 17:07:21 +02:00
</li><li>
2021-01-02 22:35:04 +01:00
<p>manage directories (file system permissions, selinux context)</p>
2018-04-24 17:07:21 +02:00
</li><li>
2021-01-02 22:35:04 +01:00
<p>manage files (file system permissions, content, selinux context)</p>
2018-04-24 17:07:21 +02:00
</li><li>
2021-01-02 22:35:04 +01:00
<p>manage proxy instances through a define</p>
2018-04-24 17:07:21 +02:00
</li><li>
2021-01-02 22:35:04 +01:00
<p>frontend options</p>
2018-04-24 17:07:21 +02:00
</li><li>
2021-01-02 22:35:04 +01:00
<p>backend options</p>
2018-04-24 17:07:21 +02:00
</li><li>
2021-01-02 22:35:04 +01:00
<p>ACL options</p>
2018-04-24 17:07:21 +02:00
</li></ul>
2021-01-02 22:35:04 +01:00
<p>SERVICE</p>
<ul><li>
<p>manage haproxy service</p>
</li><li>
<p>restart service after changes in the configuration</p>
</li></ul>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<h1 id="label-Puppet+Documentation"><a href="docs/index.html">Puppet Documentation</a></h1>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<h1 id="label-Dependencies">Dependencies</h1>
2018-04-24 17:07:21 +02:00
<p>All dependencies must be included in the catalogue.</p>
<ul><li>
<p><a
2021-01-02 22:35:04 +01:00
href="https://gitlab.confdroid.com/12WW1160/cd_resources">cd_resources</a>
2018-04-24 17:07:21 +02:00
for managing yum base repos</p>
</li><li>
2021-01-02 22:35:04 +01:00
<p><a href="https://gitlab.confdroid.com/12ww1160/cd_concat">cd_concat</a> or
<a href="https://github.com/puppetlabs/puppetlabs-concat">concat</a> for
2018-12-10 15:58:34 +01:00
managing file fragments</p>
2018-04-24 17:07:21 +02:00
</li></ul>
2021-01-02 22:35:04 +01:00
<h1 id="label-Deployment">Deployment</h1>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<h2 id="label-native+Puppet+deployment">native Puppet deployment</h2>
2018-04-24 17:07:21 +02:00
<p>via site.pp or nodes.pp</p>
<pre class="code ruby"><code class="ruby">node &#39;example.example.net&#39; {
include cd_haproxy
}</code></pre>
2021-01-02 22:35:04 +01:00
<h2 id="label-through+Foreman">through Foreman</h2>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<p>Add params.pp to the host or hostgroup.</p>
2018-04-24 17:07:21 +02:00
<p>See <a
2021-01-02 22:35:04 +01:00
href="https://confdroid.com/2017/05/deploying-our-puppet-modules/">details</a>.</p>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<h1 id="label-Documentation">Documentation</h1>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<h2 id="label-Parameters">Parameters</h2>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<p>The parameters are defined and described in <code>params.pp</code>. The
documentation is provided via <code>puppet strings</code> in HTML format,
please see <code>doc/index.html</code> via web browser.</p>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<h1 id="label-Proxy+Configuration">Proxy Configuration</h1>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<h2 id="label-Via+Define">Via Define</h2>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<p>The proxy instances are configured in
<code>/etc/haproxy/haproxy.cfg</code>, which is concatenated from various
templates through a define in this puppet module. In order to create proxy
instances, you will need an external class, which addresses the define,
like so:</p>
2018-12-30 15:19:18 +01:00
<pre class="code ruby"><code class="ruby">cd_haproxy::server::proxy { &#39;testing&#39;:
2018-12-30 18:32:21 +01:00
haproxy_fqdn =&gt; &#39;node.example.net&#39;,
2018-12-30 15:19:18 +01:00
frontend_name =&gt; &#39;test01-frontend&#39;,
2018-12-30 17:13:15 +01:00
frontend_mode =&gt; &#39;http&#39;,
2018-12-30 17:17:56 +01:00
acl_rule =&gt; [&#39;too_fast fe_sess_rate ge 10&#39;,
2018-12-30 17:13:15 +01:00
&#39;network_allowed src 0.0.0.0/0&#39;],
2018-12-30 15:19:18 +01:00
backend_name =&gt; &#39;test01-backend&#39;,
}</code></pre>
2021-01-02 22:35:04 +01:00
<p>This class should be placed in an internal configuration repo specific to
your environment.</p>
2018-12-30 15:19:18 +01:00
2021-01-02 22:35:04 +01:00
<h1 id="label-SELINUX">SELINUX</h1>
2018-04-24 17:07:21 +02:00
<p>All files and directories are configured with correct selinux context. If
selinux is disabled, these contexts are ignored.</p>
2021-01-02 22:35:04 +01:00
<h1 id="label-Known+Problems">Known Problems</h1>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<h1 id="label-Support">Support</h1>
2018-04-24 17:07:21 +02:00
<ul><li>
2018-12-10 14:39:32 +01:00
<p>OS: CentOS 7</p>
2018-04-24 17:07:21 +02:00
</li><li>
2018-12-10 14:39:32 +01:00
<p>Puppet 5.x</p>
2018-04-24 17:07:21 +02:00
</li></ul>
2021-01-02 22:35:04 +01:00
<h1 id="label-Tests">Tests</h1>
2018-04-24 17:07:21 +02:00
<ul><li>
<p>Puppet Lint</p>
</li><li>
<p>excluded tests:</p>
<ul><li>
2021-01-02 22:35:04 +01:00
<p><code>--no-class_inherits_from_params_class-check</code>:relevant only to
2018-04-24 17:07:21 +02:00
non-supported outdated puppet versions</p>
</li><li>
<p><code>--no-variable_scope-check</code>: not applicable as we are inheriting
2021-01-02 22:35:04 +01:00
parameters from the params class. the lint check does not distinguish
between facts and inherited parameters.</p>
2018-04-24 17:07:21 +02:00
</li><li>
2021-01-02 22:35:04 +01:00
<p><code>--no-80chars-check</code>: it is not always possible to stay within
80 characters, although typically only occurring on the parameter vault
2018-04-24 17:07:21 +02:00
<code>params.pp</code>.</p>
</li><li>
<p><code>--no-arrow_alignment-check</code>: this check leads to actually not
2021-01-02 22:35:04 +01:00
having easily readable arrow alignments, as this checks <code>per
block</code>, not per class.</p>
2018-04-24 17:07:21 +02:00
</li></ul>
</li><li>
<p>Puppet Parser</p>
</li><li>
<p>ERB Template Parser</p>
</li><li>
2021-01-02 22:35:04 +01:00
<p>Test for unwanted UTF8 files</p>
</li></ul>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<h1 id="label-Contact+Us">Contact Us</h1>
2018-04-24 17:07:21 +02:00
<p><a href="https://confdroid.com/contact/">contact Us</a></p>
2021-01-02 22:35:04 +01:00
<h1 id="label-Disclaimer">Disclaimer</h1>
2018-04-24 17:07:21 +02:00
2021-01-02 22:35:04 +01:00
<p>ConfDroid as entity is independent from Puppet. We provide custom
2018-04-24 17:07:21 +02:00
configuration modules, written for specific purposes and specific
2018-12-07 15:09:55 +01:00
environments. The modules are tested and supported only as documented, and
2018-04-24 17:07:21 +02:00
require testing in designated environments (i.e. lab or development
environments) for parameter tuning etc. before deploying into production
environments.</p>
</div></div>
<div id="footer">
Generated by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>.
</div>
</div>
</body>
</html>