Files
confdroid_resources/doc/index.html
2026-02-10 15:48:06 +01:00

224 lines
8.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
File: README
&mdash; Documentation by YARD 0.9.36
</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<link rel="stylesheet" href="css/common.css" type="text/css" />
<script type="text/javascript">
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'>
<h1 id="label-Readme">Readme</h1>
<p><a href="https://jenkins.confdroid.com/job/confdroid_resources/"><img src="https://jenkins.confdroid.com/job/confdroid_resources/badge/icon?style=plastic"></a> <a href="https://sonarqube.confdroid.com/dashboard?id=confdroid_resources"><img src="https://sonarqube.confdroid.com/api/project_badges/measure?project=confdroid_resources&amp;metric=alert_status&amp;token=sqb_663ea1a864c1e75ee74e7de29138bf2c83bb8f16"></a> <a href="https://sonarqube.confdroid.com/dashboard?id=confdroid_resources"><img src="https://sonarqube.confdroid.com/api/project_badges/measure?project=confdroid_resources&amp;metric=security_hotspots&amp;token=sqb_663ea1a864c1e75ee74e7de29138bf2c83bb8f16"></a></p>
<ul><li>
<p><a href="#readme">Readme</a></p>
</li><li>
<p><a href="#synopsis">Synopsis</a></p>
</li><li>
<p><a href="#why-this-module-exists">Why This Module Exists</a></p>
</li><li>
<p><a href="#how-it-works">How It Works</a></p>
</li><li>
<p><a href="#warning">WARNING</a></p>
</li><li>
<p><a href="#features">Features</a></p>
</li><li>
<p><a href="#repo-documentation">Repo Documentation</a></p>
</li><li>
<p><a href="#dependencies">Dependencies</a></p>
</li><li>
<p><a href="#deployment">Deployment</a></p>
</li><li>
<p><a href="#selinux">SELINUX</a></p>
</li><li>
<p><a href="#known-problems">Known Problems</a></p>
</li><li>
<p><a href="#support">Support</a></p>
</li><li>
<p><a href="#tests">Tests</a></p>
</li><li>
<p><a href="#contact-us">Contact Us</a></p>
</li><li>
<p><a href="#disclaimer">Disclaimer</a></p>
</li></ul>
<h2 id="label-Synopsis">Synopsis</h2>
<p><code>confdroid_resources</code> is a lightweight Puppet module that automates the installation and configuration of common YUM/DNF repositories on Rocky Linux (and other Red Hat-based distributions). Its primary focus is managing widely used third-party repositories such as EPEL in a clean, idempotent, and conflict-free way.</p>
<h2 id="label-Why+This+Module+Exists">Why This Module Exists</h2>
<p>Rocky Linux (like other Enterprise Linux distributions) uses <strong>YUM/DNF repositories</strong> to define where packages are downloaded from. Many useful packages — especially development tools, monitoring agents, additional utilities, and more — are not available in the base OS repositories. These packages are commonly found in EPEL (Extra Packages for Enterprise Linux).</p>
<p>However, Puppet follows a <strong>singleton resource model</strong>: a given resource (such as the EPEL repository) can only be declared and managed once in the catalog. Declaring it multiple times causes conflicts and catalog compilation failures.</p>
<p>This creates a common problem:</p>
<ul><li>
<p>Module A needs EPEL to install package X.</p>
</li><li>
<p>Module B also needs EPEL to install package Y.</p>
</li><li>
<p>If both modules try to declare the EPEL repo resource → conflict.</p>
</li></ul>
<p>To solve this, the best practice is to manage foundational repositories (like EPEL) once, in a central place that is included in every nodes catalog — regardless of which specific modules or classes are applied. Thats exactly where <code>confdroid_resources</code> comes in.</p>
<h2 id="label-How+It+Works">How It Works</h2>
<ul><li>
<p>The module provides a clean, reusable way to install and enable common repositories (starting with EPEL).</p>
</li><li>
<p>It is designed to be included early in the catalog — ideally in a base profile or common role that applies to all nodes.</p>
</li><li>
<p>Once the repository is present, any module or class can safely install packages that depend on it without re-declaring the repo resource.</p>
</li><li>
<p>Individual repositories can be enabled or disabled via parameters, giving you full control without touching the main resource declarations.</p>
</li></ul>
<p>This approach keeps your catalog clean, avoids duplication, and prevents resource conflicts.</p>
<h2 id="label-WARNING">WARNING</h2>
<p><strong><em>Attention: Never use this puppet module on systems which have been previously configured manually. It is impossible to predict how and what would have been configured, hence previous configurations outside the 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</em></strong></p>
<h2 id="label-Features">Features</h2>
<ul><li>
<p>installs and configures yum repos</p>
</li><li>
<p>Automatic installation and enabling of EPEL via <code>$rs_enable_epel</code>. since this parameter is directly also used in the yumrepo configuration, it needs to be set to <code>1</code>, <strong>not</strong> <code>true</code>.</p>
</li><li>
<p>Parameter-based control (enable/disable specific repos)</p>
</li><li>
<p>Idempotent and conflict-free design</p>
</li></ul>
<p>More repositories (PowerTools/CRB, RPM Fusion, etc.) will be added over time.</p>
<h2 id="label-Repo+Documentation">Repo Documentation</h2>
<p>See the full Puppet documentation including parameters in <code>docs/index.html</code></p>
<h2 id="label-Dependencies">Dependencies</h2>
<p>All dependencies must be included in the catalogue.</p>
<h2 id="label-Deployment">Deployment</h2>
<ul><li>
<p>native Puppet deployment</p>
</li></ul>
<p>via site.pp or nodes.pp</p>
<pre class="code ruby"><code class="ruby">node &#39;example.example.net&#39; {
include confdroid_resources
}
</code></pre>
<ul><li>
<p>through Foreman (recommended):</p>
</li></ul>
<p>In order to apply parameters through Foreman, the params.pp must be added to the host or host group in question.</p>
<p>See <a href="https://confdroid.com/2017/05/deploying-our-puppet-modules/">more details about class deployment on Confdroid.com</a>.</p>
<ul><li>
<p>call it from other modules</p>
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_require'>require</span> <span class='id identifier rubyid_confdroid_resources'>confdroid_resources</span>
</code></pre>
<h2 id="label-SELINUX">SELINUX</h2>
</li></ul>
<p>All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored.</p>
<h2 id="label-Known+Problems">Known Problems</h2>
<h2 id="label-Support">Support</h2>
<ul><li>
<p>OS: Rocky 9</p>
</li><li>
<p>Puppet 8</p>
</li></ul>
<h2 id="label-Tests">Tests</h2>
<ul><li>
<p>Puppet Lint</p>
</li><li>
<p>excluded tests:</p>
<ul><li>
<p><code>--no-variable_scope-check</code>: not applicable as we are inheriting parameters from params class. the lint check does not distinguish between facts and inherited parameters.</p>
</li></ul>
</li><li>
<p>Puppet Parser</p>
</li><li>
<p>ERB Template Parser</p>
</li><li>
<p>Sonar Quality Gate</p>
</li></ul>
<h2 id="label-Contact+Us">Contact Us</h2>
<p><a href="https://confdroid.com/contact/">contact Us</a> <a href="feedback.confdroid.com">Feedback Portal</a></p>
<h2 id="label-Disclaimer">Disclaimer</h2>
<p>ConfDroid as entity is entirely independent from Puppet. We provide custom configuration modules, written for specific purposes and specific environments. The modules are tested and supported only as documented, and 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>