Files
gitea-pages/admin-guide/puppet/roles/base.rst

11 KiB

role::base

This role is special in that it cannot be assigned to a system. It is meant to be included by all other roles and provide basic functionality that all roles need anyway.

Parameters

Name Type Default
default_target string multi-user
default_enable_afs bool undef
default_enable_pmodules bool undef
default_pmodules_when_afs bool false,
default_local_homes bool undef,
default_enable_mta bool undef,
enable_afs bool hiera('base::enable_afs')
enable_autofs bool hiera('base::enable_autofs')
enable_epics bool hiera('base::enable_epics')
enable_filecopy bool hiera('base::enable_filecopy')
enable_ganglia bool hiera('base::enable_ganglia')
enable_icinga bool hiera('base::enable_icinga')
enable_iommu bool hiera('base::enable_iommu')
enable_kdump_client bool hiera('base::enable_kdump_client')
enable_local_homes bool hiera('base::local_homes', undef),
enable_mta bool hiera('base::enable_mta', undef),
enable_multipath bool hiera('base::enable_multipath')
enable_nfs_server bool hiera('base::enable_nfs_server')
enable_nomachine bool hiera('base::enable_nomachine')
enable_platform bool hiera('base::enable_platform')
enable_pmodules bool hiera('base::enable_pmodules')
enable_print_client bool hiera('base::enable_print_client')
enable_rhgb bool hiera('base::enable_rhgb')
enable_ssh_client bool hiera('base::enable_ssh_client')
enable_telegraf bool hiera('base::enable_telegraf')
enable_updatedb bool hiera('base::enable_updatedb')
include_aaa bool true
include_log_client bool true
include_rpm_repos bool true
package_groups array hiera_array('base::package_groups', [])
package_excludes array hiera_array('base::package_exclude', [])
pkg_group::* array hiera_array('base::pkg_group::...', [])
selinux_mode string hiera('base::selinux_mode', 'enforcing')
update_interval enum hiera('base::automatic_updates::interval', 'weekly')
update_type enum hiera('base::automatic_updates::type', 'security')
update_exclude array hiera_array('base::automatic_updates::exclude', [])
update_kernel bool hiera('base::automatic_updates::kernel', false)

default_target

Specifies the systemd default target to configure. This does not isolate the target (see systemctl(1)), but merely sets it so it will become active after a reboot.

default_enable_afs

Allows the role programmer to define if AFS should be enabled or not when there is no base::enable_afs Hiera setting and parameter enable_afs is undefined (default).

default_enable_pmodules

Allows the role programmer to define if pmodules should be enabled or not when there is no base::enable_pmodules Hiera setting and parameter enable_pmodules is undefined (default).

default_pmodules_when_afs

Allows the role programmer to define if pmodules should be automatically enabled together with AFS. should be enabled or not when there is no base::enable_pmodules Hiera setting and parameter enable_pmodules is undefined (default).

This requires the parameters default_enable_pmodules and enable_pmodules to be undefined (default) and that there is no base::enable_pmodules Hiera setting.

default_local_homes

Allows the role programmer to define if local homes should be used if not configured differently in Hiera. This is default on RHEL8.

default_enable_mta

Allows the role programmer to define if postfix should be enabled or not when there is no base::enable_mta Hiera setting and parameter enable_mta is undefined (default).

enable_afs

Determines whether to include the afs_client <../profiles/afs_client> profile to enable AFS access. For the softioc role this is ignored, respectively there is a separate softioc::enable_afs Hiera settings.

Puppet roles should not set this parameter as this overrides base::enable_afs from Hiera. Please use default_enable_afs instead to define the role preference.

enable_autofs

Enable the autofs service. This is not needed for automounts! It is only needed to support the -hosts map as documented in auto.master. The -hosts map is mounted on /net.

enable_epics

Enables the EPICS. TODO: more details...

enable_filecopy

Enable the filecopy profile, which allows deploying arbitrary files from git.psi.ch through Hiera.

enable_ganglia

Determines whether to include the ganglia_client <../profiles/ganglia_client>.

enable_ssh_client

Deploy global SSH client configuration, ie /etc/ssh/ssh_config.

enable_telegraf

Enable the telegraf monitoring agent, which reports various system metrics to InfluxDB servers.

enable_icinga

Determines whether to include the icinga_client <../profiles/icinga_client> profile, which installs the client components necessary for Icinga-based monitoring.

enable_iommu

It enables the IOMMU support in the kernel on boot. The node needs to be rebooted for this change to become active.

enable_kdump_client

Determines whether to include the kdump_client <../profiles/kdump_client> profile.

enable_local_homes

Configures local homes.

Puppet roles should not set this parameter as this overrides base::enable_local_homes from Hiera. Please use default_local_homes instead to define the role preference.

enable_mta

Enables postfix.

Puppet roles should not set this parameter as this overrides base::enable_mta from Hiera. Please use default_enable_mta instead to define the role preference.

enable_multipath

Enable the multipath profile for basic multipath functionality.

enable_nfs_server

Enable the kernel NFS server and configure the exports(5) file. See the nfs_server <../profiles/nfs_server> profile for details.

enable_nomachine

Include the nomachine profile, which can install NoMachine NX in various configurations.

enable_platform

Enable the platform profile, which installs and configures hardware-specific tools and configurations.

enable_pmodules

Determines whether to enable the pmodules <../profiles/pmodules> profile. When true, the necessary configuration is automatically sourced for all normal users (ie UID >= 1000 and no -adm suffix) using bash(1).

Requires AFS to work, as the required configuration files are stored on AFS.

Puppet roles should not set this parameter as this overrides base::enable_pmodules from Hiera. Please use default_enable_pmodules or even default_pmodules_when_afs instead to define the role preference.

enable_print_client

Enable and configure CUPS as a client. See the print_client <../profiles/print_client> profile for details.

enable_rhgb

Determines whether the graphical boot screen is enabled.

enable_updatedb

Determines whether or not updatedb(8) (aka locate(1)) is enabled or not. When enabled, it is still possible to exclude certain directories for indexing. This is also supported directly by the mounter module.

include_aaa

Determines whether to include the aaa <../profiles/aaa> profile, which configures authentication, authorization, and (partly) auditing.

include_log_client

Include the log_client <../profiles/log_client> profile. This is only meant to allow roles customization of the log_client <../profiles/log_client> profile.

include_rpm_repos

Determines whether to install the default RPM package repositories.

package_groups

The list of package groups to install. Package groups are defined in Hiera using base::pkg_group::NAME.

pkg_group::NAME

An array defining the package group NAME. It contains the package name with optionally one or more tags, separated by :. Following tags are allowed:

Tag Description
latest ensure the latest version of the package is installed
absent ensure the package is not installed
os=redhat7 install it only on this OS
os!redhat7 install on any OS except this one

package_excludes

An array with packages which are not made available on the system.

selinux_mode

The SELinux mode to use, one of enforcing, permissive, and disabled. The configured SELinux mode (ie the setting in /etc/sysconfig/selinux) is changed immediately. The runtime mode is changed as follows, as certain transitions are impossible without a reboot:

Current Setting New runtime
Enforcing Disabled Permissive
Enforcing Permissive Permissive
Permissive Enforcing Enforcing
Permissive Disabled Permissive
Disabled Permissive Disabled
Disabled Enforcing Disabled

update_interval

How often should the automatic updates be installed. Valid options are never, daily and weekly.

update_type

What type of package updates should be installed automatically, either security for only security updates or all for all updates.

update_exclude

List of packages which shall not be updated automatically. Wildcards like * are allowed. The kernel is excluded by default.

update_kernel

Marks if also the kernel package should be automatically updated. Note that the necessary reboot to run the new kernel needs to be done manually.

Examples

The most basic usage is:

class role::some_role () {

  include role::base

  ...
}

Most profiles that are included can be excluded when necessary:

class role::some_role () {

  class {'role::base':
    include_icinga => false,
  }

  ...
}

This can be used to customize some of the basic profiles:

class role::base () {

  class {'role::base':
    include_aaa => false,
  }

  class {'profile::aaa':
    allow_sudoers_d => true,
  }

  ...
}