document new package repository configuration in puppet

This commit is contained in:
2022-07-01 15:44:02 +02:00
parent c7b275cfb8
commit 6ec6d55427
7 changed files with 224 additions and 37 deletions
@@ -0,0 +1,44 @@
``profile::package_list``
============================
This module installs a list of packages on the node, with extra options inlcuding the filtering by OS.
This profile is usually direcly used from Puppet::
profile::repository_list{'rpm_repos::influx':}
Parameters
----------
=============================== ======== =============================================
**Name** **Type** **Default**
------------------------------- -------- ---------------------------------------------
packages list []
=============================== ======== =============================================
``packages``
~~~~~~~~~~~~
This list contains the names of the packages to be installed. The names may be "extended" by tags, separated by ``:``.
========== ===============================
Tag Function
---------- -------------------------------
absent package will be removed
latest always latest version installed
os=redhat7 only install on given OS
os!redhat7 do not install on given OS
========== ===============================
Example definitions::
java-11-openjdk
@Java Platform
java-1.8.0-openjdk:os=redhat8:latest:os!redhat9
java-1.8.0-openjdk:os=redhat7:absent
@@ -0,0 +1,73 @@
``profile::repository_list``
============================
This module configures adds a list of package repositories from hiera
and filters those according to OS version.
Parameters
----------
=============================== =========== =============================================
**Name** **Type** **Default**
------------------------------- ----------- ---------------------------------------------
descr string
baseurl string
gpgkey string undef
gpgcheck bool false
disable bool true
priority integer undef
exclude string/list ''
=============================== =========== =============================================
``title``
~~~~~~~~~
The repository definition will end up as ``/etc/yum.repos.d/${title}.repo`` on the node
``descr``
~~~~~~~~~
Description of the package repository.
``baseurl``
~~~~~~~~~~~
URL where the repository is available from, e.g.::
https://repo01.psi.ch/el8/tags/$pli_repo_tag/epel/
``gpgkey``
~~~~~~~~~~
URL or file path where the signing GPG key is available from, e.g.::
https://repo01.psi.ch/el8/keys/RPM-GPG-KEY-EPEL-8
``gpgcheck``
~~~~~~~~~~~~
Check GPG signature of installed packages.
``disable``
~~~~~~~~~~~
If the repository should be checked for package installation/updates or not.
``priority``
~~~~~~~~~~~~
What priority do packages from this repositry have?
``exclude``
~~~~~~~~~~~
List or comma separated string with packages to be ignored from this repositores. Wildcards are supported.
@@ -0,0 +1,47 @@
``profile::repository_list``
============================
This module configures adds a list of package repositories from hiera
and filters those according to OS version.
Parameters
----------
=============================== ======== =============================================
**Name** **Type** **Default**
------------------------------- -------- ---------------------------------------------
accept_empty bool false
=============================== ======== =============================================
``title``
~~~~~~~~~
Name of the list of software repositores to be installed.
It will lookup in Hiera for a list ``$title`` and look up the
repository definitons with ``hiera_hash("rpm_repos::repo::${name}")``.
The repository definitions not suitable for this OS will be filtered away,
then with the rest a repository configuration is writen to the node
using ``profile::repository``. The ``osversion`` key in the repository definition
signals the major RHEL version for which this repository is for.
Example definition::
rpm_repos::repo::epel_rhel8:
name: 'epel'
descr: "Extra Packages for Enterprise Linux 8"
baseurl: 'https://repo01.psi.ch/el8/tags/$pli_repo_tag/epel/'
gpgkey: 'https://repo01.psi.ch/el8/keys/RPM-GPG-KEY-EPEL-8'
disable: false
gpgcheck: true
osversion: 8
exclude:
- "slurm*"
``accept_empty``
~~~~~~~~~~~~~~~~
Do not fail when the repository list is empty after
@@ -1,7 +1,7 @@
``profile::yum_client``
``profile::rpm_repos``
=======================
This module configures :manpage:`yum(8)`.
This module configures :manpage:`dnf(8)` and sets up the default package repositores.
Parameters
@@ -10,32 +10,30 @@ Parameters
=============================== ======== =============================================
**Name** **Type** **Default**
------------------------------- -------- ---------------------------------------------
exclude list hiera('yum_client::exclude', [])
package_groups list hiera_array('yum_client::package_groups', [])
purge_repositories bool hiera('yum_client::purge_repositories')
repos list hiera_array('yum_client::repositories')
repo_list string 'rpm_repos::default'
repo_tags hash hiera_hash('rpm_repos::tag')
exclude list hiera('base::package_exclude, [])
purge_repositories bool hiera('rpm_repos::purge_repositories')
=============================== ======== =============================================
``repo_list``
~~~~~~~~~~~~~
Name of the list of default software repositores to be installed.
``repo_tags``
~~~~~~~~~~~~~
Hash containing the repository tag which should be used per OS.
The key for RHEL 7 is ``redhat7`` and points by default to ``prod``,
whereas for later versions is ``rhel-$MAJOR_VERSION`` (eg. for ``redhat8`` it is ``rhel-8``)
``exclude``
~~~~~~~~~~~
An array containing entries suitable for the ``exclude`` option in
:manpage:`yum.conf(5)`.
``package_group``
~~~~~~~~~~~~~~~~~
A list containing the names of the package groups to be installed on the
systems. The package groups have to be defined through `pkg_group::$NAME`_ and
are completely independent of Yum (environment) groups.
``pkg_group::$NAME``
~~~~~~~~~~~~~~~~~~~~
The list of packages that comprise the package group ``$NAME``.
:manpage:`dnf.conf(5)`.
``purge_repositories``