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 does not manage the file /etc/security/limits.conf
    limits::limits{'*/nofile':
      hard => 1048576,
      soft => 1048576,
    }
    limits::limits{'root/nofile': both => 1048576; }purge_limits_d_dir(Boolean, default: true) Whether or not to purge the limits.d directorymanage_limits_d_dir(Boolean, default: true) Whether or not to manage the limits.d directorylimits_dir: (String) The location of the limits.d directoryentries: (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 presentuser: (String) The user that the limit applies tolimit_type(String) The limit typehard: (Integer) the hard valuesoft: (Integer) the soft valueboth: (Integer) the value of both soft and hard
Puppet:
    include ::limitsHiera:
    limits::entries:
      'root/nofile':
        both: 1048576
      '*/memlock':
        both: unlimitedThis module is compatible with Puppet 4.9+, and Puppet 5.0+
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: deepThe 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,
    }    class { 'limits':
      purge_limits_d_dir => false,
    }
    limits::limits { 'username_nofile':
      ensure     => present,
      user       => 'username',
      limit_type => 'nofile',
      hard       => 16384,
    }    limits::limits { 'username_nofile':
      ensure     => present,
      user       => 'username',
      limit_type => 'nofile',
      both       => 16384,
    }One of hard, soft or both must be set!
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,
}