limits

Manage user limits via puppet

8,379,173 downloads

8,137 latest version

5.0 quality score

Version information

  • 5.0.0 (latest)
  • 4.0.1
  • 4.0.0
  • 3.1.0
  • 3.0.4
  • 3.0.3
  • 3.0.2
  • 3.0.1
  • 2.5.0
  • 2.3.0
  • 2.2.2
  • 2.1.0
  • 2.0.2
  • 2.0.1
  • 2.0.0
  • 1.0.0
released Oct 28th 2024
This version is compatible with:
  • Puppet Enterprise 2025.3.x, 2025.2.x, 2025.1.x, 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
  • Puppet >= 7.0.0 < 9.0.0
  • RedHat
    , Amazon,
    CentOS
    ,
    Debian
    ,
    Ubuntu
    , Gentoo, Suse

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'saz-limits', '5.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add saz-limits
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install saz-limits --version 5.0.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

saz/limits — version 5.0.0 Oct 28th 2024

puppet-limits CI

Manage user and group limits via Puppet

This module manages the limits of the PAM module pam_limits.

It creates files in /etc/security/limits.d and optionally manages the file /etc/security/limits.conf

How to use

Set limits using title pattern:

    limits::limits{'*/nofile':
      hard => 1048576,
      soft => 1048576,
    }
    limits::limits{'root/nofile': both => 1048576; }

Parameters

  • purge_limits_d_dir (Boolean, default: true) Whether or not to purge the limits.d directory
  • manage_limits_d_dir (Boolean, default: true) Whether or not to manage the limits.d directory
  • manage_limits_file (Boolean, default: false) Whether or not to manage the /etc/security/limits.conf file.
  • limits_file (String, default: /etc/security/limits.conf) The name of the limits file to be managed.
  • limits_dir: (String) The location of the limits.d directory
  • limits_file_owner: (String, default: root) The owner of the ${limits_file} file.
  • limits_file_group: (String, default: root) The group of the ${limits_file} file.
  • limits_file_mode: (String, defaul: '0644') The file mode of the ${limits_file} file.
  • entries: (Hash) A hash of limits entries, keys should be the name and the value as a hash made up of;
    • ensure: (String, default present) Values can be absent or present
    • user: (String) The user that the limit applies to
    • limit_type (String) The limit type
    • hard: (Integer) the hard value
    • soft: (Integer) the soft value
    • both: (Integer) the value of both soft and hard
    • target: (String) Optional name of file in limits_dir to set limit settings to. Will ignore other file naming logic when provided.

Using hiera

Puppet:

    include ::limits

Hiera:

    limits::entries:
      'root/nofile':
        both: 1048576
      '*/memlock':
        both: unlimited

Compatibility

Puppet 4.9+

This module is compatible with Puppet 4.9+, and Puppet 5.0+

Puppet 4.0 - 4.8

To use this module with previous versions of Puppet 4 (prior to Hiera 5) you should update your Hiera data to include the following

---
limits::limits_dir: /etc/security/limits.d

lookup_options:
  limits::entries:
    merge: deep

Purge limits.d directory

The class limits will purge the limits.d directory by default. You can explicit change this with the parameter purge_limits_d_dir

	class { 'limits': }

    limits::limits { 'username_nofile':
      ensure     => present,
      user       => 'username',
      limit_type => 'nofile',
      hard       => 16384,
      soft       => 16384,
    }

Do NOT purge limits.d directory explicitly

    class { 'limits':
      purge_limits_d_dir => false,
    }

    limits::limits { 'username_nofile':
      ensure     => present,
      user       => 'username',
      limit_type => 'nofile',
      hard       => 16384,
    }

Set both limit types in one line

    limits::limits { 'username_nofile':
      ensure     => present,
      user       => 'username',
      limit_type => 'nofile',
      both       => 16384,
    }

One of hard, soft or both must be set!

Do not manage /etc/security/limits.d

In an effort to make this module compatible with similar modules, e.g. puppet-module-pam, management of /etc/security/limits.d can be disabled by the manage_limits_d_dir class parameter:

class { 'limits':
  manage_limits_d_dir => false,
}