common

common module to be applied to all nodes

Garrett Honeycutt

ghoneycutt

2,432,852 downloads

3,594 latest version

4.9 quality score

Version information

  • 1.10.0 (latest)
  • 1.9.0
  • 1.8.0
  • 1.7.0
  • 1.6.0
  • 1.5.0
  • 1.4.1
  • 1.4.0
  • 1.3.0
  • 1.2.1
  • 1.2.0
  • 1.1.1
  • 1.1.0
  • 1.0.3
  • 1.0.2
  • 1.0.0
released Sep 11th 2020
This version is compatible with:
  • Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >= 3.0.0 < 7.0.0
  • Debian, RedHat, CentOS, OracleLinux, Scientific, Solaris, SLES, SLED, Ubuntu

Start using this module

Documentation

ghoneycutt/common — version 1.10.0 Sep 11th 2020

puppet-module-common

Build Status

common module to be applied to ALL nodes

Compatibility

Module is generic enough to work on any system, though the individual modules that it could potentially include could be very platform specific.

===

Common class

Optionally include classes that are common to all systems, such as dnsclient, ntp, puppet::agent, and vim. By default we do not take any action, so you must enable the classes. This should be done in Hiera such as the following example. Ideally you would do this in your least specific level of hiera (often times labeled as 'common' or 'global') and potentially override at other levels.

common::manage_root_password: true common::enable_dnsclient: true common::enable_ntp: true common::enable_puppet_agent: true common::enable_vim: true

Parameters for class common##

users

Hash of users to ensure with common::mkusers

  • Default: undef

groups

Hash of groups to ensure

  • Default: undef

manage_root_password

  • Default: false

root_password

  • Default: MD5 crypt of puppet

create_opt_lsb_provider_name_dir

Boolean to ensure /opt/${lsb_provider_name}

  • Default: false

lsb_provider_name

LSB Provider Name as assigned by LANANA - http://www.lanana.org/lsbreg/providers/index.html

  • Default: UNSET

enable_dnsclient

Boolean to include ghoneycutt/dnsclient

  • Default: false

enable_hosts

Boolean to include ghoneycutt/hosts

  • Default: false

enable_inittab

Boolean to include ghoneycutt/inittab

  • Default: false

enable_mailaliases

Boolean to include ghoneycutt/mailaliases

  • Default: false

enable_motd

Boolean to include ghoneycutt/motd

  • Default: false

enable_network

Boolean to include ghoneycutt/network

  • Default: false

enable_nsswitch

Boolean to include ghoneycutt/nsswitch

  • Default: false

enable_ntp

Boolean to include ghoneycutt/ntp

  • Default: false

enable_pam

Boolean to include ghoneycutt/pam

  • Default: false

enable_puppet_agent

Boolean to include ghoneycutt/puppet::agent

  • Default: false

enable_rsyslog

Boolean to include ghoneycutt/rsyslog

  • Default: false

enable_selinux

Boolean to include ghoneycutt/selinux

  • Default: false

enable_ssh

Boolean to include ghoneycutt/ssh

  • Default: false

enable_utils

Boolean to include ghoneycutt/utils

  • Default: false

enable_vim

Boolean to include ghoneycutt/vim

  • Default: false

enable_wget

Boolean to include ghoneycutt/wget

  • Default: false

includes classes based on osfamily fact

enable_debian

Boolean to include ghoneycutt/debian

  • Default: false

enable_redhat

Boolean to include ghoneycutt/redhat

  • Default: false

enable_solaris

Boolean to include ghoneycutt/solaris

  • Default: false

enable_suse

Boolean to include ghoneycutt/suse

  • Default: false

===

common::mkdir_p define

Provide mkdir -p functionality for a directory.

Used in conjunction with a file resource.

Example usage:

Parameters for common::mkdir_p define

None.

===

common::remove_if_empty define

Removes a file if it exists and is empty.

Example usage:

Parameters for common::remove_if_empty define

None.

===

common::mkuser define

Ensures user/groups

Usage

You can specify hash each for users and groups and use Hiera to manage them.

This example uses the YAML backend, though that is not mandatory.

In Hiera's hierarchy add two levels, users, and groups such as the following example.

hiera.yaml

:backends:

  • yaml :hierarchy:
  • fqdn/%{fqdn}
  • users
  • groups
  • %{environment}
  • common :yaml: :datadir:

users.yaml

common::users: gh: uid: "30000" comment: "Garrett Honeycutt" groups: admin ssh_auth_key: ssh-public-key

groups.yaml

common::groups: admin: gid: "32000"

Parameters for common::mkuser define

uid

String - UID of user

  • Required

gid

String - GID of user

  • Default: $uid

name

String - username

group

String - group name of user

  • Default: $name

shell

String - user's shell

  • Default: '/bin/bash'

home

String - home directory

  • Default: /home/${username}

ensure

Present or Absent

  • Default: present

managehome

Boolean for manage home attribute of user resource

  • Default: true

manage_dotssh

Boolean to optionally create ~/.ssh directory

  • Default: true

comment

String - GECOS field for passed

  • Default: 'created via puppet'

groups

Array - additional groups the user should be associated with

  • Default: undef

password

String - password crypt for user

  • Default: '!!'

mode

String - mode of home directory

  • Default: 0700

ssh_auth_key

String - The ssh key for the user

  • Default: undef

ssh_auth_key_type

String - Anything that the ssh_authorized_key resource can take for the type attribute, such as ssh-dss or ssh-rsa.

  • Default: 'ssh-dss'

purge_ssh_keys

Boolean - Purge any keys that aren’t managed as ssh_authorized_key resources. As this parameter was introduced with Puppet 3.6, it will only work with Puppet >= 3.6. On earlier version this parameter will be silently ignored.

  • Default: false

===

Functions

interface2factname()

Takes one argument, the interface name, and returns it formatted for use with facter.

Example: interface2factname('bond0:0') would return ipaddress_bond0_0.

strip_file_extension()

Takes two arguments, a file name which can include the path, and the extension to be removed. Returns the file name without the extension as a string.

Example: strip_file_extension('myapp.war','war') would return myapp.