Skip to content

Commit

Permalink
Replace params class with Hiera data for default values
Browse files Browse the repository at this point in the history
  • Loading branch information
treydock committed Dec 5, 2023
1 parent ddd7314 commit 51d4dad
Show file tree
Hide file tree
Showing 11 changed files with 343 additions and 269 deletions.
30 changes: 30 additions & 0 deletions data/Archlinux.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
nsswitch::passwd:
- files
- mymachines
- systemd
nsswitch::shadow:
- files
nsswitch::group:
- files
- mymachines
- systemd
nsswitch::services:
- files
nsswitch::netgroup:
- files
nsswitch::ethers:
- files
nsswitch::hosts:
- files
- mymachines
- myhostname
- resolve [!UNAVAIL=return]
- dns
nsswitch::networks:
- files
nsswitch::protocols:
- files
nsswitch::publickey:
- files
nsswitch::rpc:
- files
27 changes: 27 additions & 0 deletions data/Debian.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
nsswitch::ethers:
- db
- files
nsswitch::group:
- compat
nsswitch::gshadow:
- files
nsswitch::hosts:
- files
- dns
nsswitch::netgroup:
- nis
nsswitch::networks:
- files
nsswitch::passwd:
- compat
nsswitch::protocols:
- db
- files
nsswitch::rpc:
- db
- files
nsswitch::services:
- db
- files
nsswitch::shadow:
- compat
18 changes: 18 additions & 0 deletions data/FreeBSD.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
nsswitch::group:
- compat
nsswitch::hosts:
- files
- dns
nsswitch::networks:
- files
nsswitch::passwd:
- compat
nsswitch::protocols:
- files
nsswitch::rpc:
- files
nsswitch::services:
- compat
nsswitch::shells:
- files
nsswitch::file_group: wheel
34 changes: 34 additions & 0 deletions data/Gentoo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
nsswitch::aliases:
- files
nsswitch::automount:
- files
nsswitch::bootparams:
- files
nsswitch::ethers:
- db
- files
nsswitch::group:
- compat
nsswitch::hosts:
- files
- dns
nsswitch::netgroup:
- files
nsswitch::netmasks:
- files
nsswitch::networks:
- files
- dns
nsswitch::passwd:
- compat
nsswitch::protocols:
- db
- files
nsswitch::rpc:
- db
- files
nsswitch::services:
- db
- files
nsswitch::shadow:
- compat
38 changes: 38 additions & 0 deletions data/RedHat.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
nsswitch::passwd:
- files
- sss
nsswitch::shadow:
- files
- sss
nsswitch::group:
- files
- sss
nsswitch::automount:
- files
nsswitch::services:
- files
- sss
nsswitch::netgroup:
- files
- sss
nsswitch::aliases:
- files
- nisplus
nsswitch::bootparams:
- nisplus [NOTFOUND=return]
- files
nsswitch::ethers:
- files
nsswitch::hosts:
- files
- dns
nsswitch::netmasks:
- files
nsswitch::networks:
- files
nsswitch::protocols:
- files
nsswitch::publickey:
- nisplus
nsswitch::rpc_default:
- files
30 changes: 30 additions & 0 deletions data/SLES.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
nsswitch::aliases:
- files
nsswitch::automount:
- files
nsswitch::bootparams:
- files
nsswitch::ethers:
- files
nsswitch::group:
- compat
nsswitch::hosts:
- files
- dns
nsswitch::netgroup:
- files
nsswitch::netmasks:
- files
nsswitch::networks:
- files
- dns
nsswitch::passwd:
- compat
nsswitch::protocols:
- files
nsswitch::publickey:
- files
nsswitch::rpc:
- files
nsswitch::services:
- files
41 changes: 41 additions & 0 deletions data/Solaris.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
nsswitch::aliases:
- files
- nisplus
nsswitch::automount:
- files
- nisplus
nsswitch::bootparams:
- nisplus
- files
nsswitch::ethers:
- nisplus
- files
nsswitch::group:
- files
- nisplus
nsswitch::hosts:
- files
- dns
- nisplus
nsswitch::netgroup:
- nisplus
nsswitch::netmasks:
- files
- nisplus
nsswitch::networks:
- nisplus
- files
nsswitch::passwd:
- files
- nisplus
nsswitch::protocols:
- nisplus
- files
nsswitch::publickey:
- nisplus
nsswitch::rpc:
- nisplus
- files
nsswitch::services:
- nisplus
- files
18 changes: 18 additions & 0 deletions hiera.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
version: 5

defaults:
datadir: 'data'
data_hash: yaml_data

hierarchy:
- name: 'Distribution Name - Major version'
path: "%{facts.os.name}/%{facts.os.release.major}.yaml"
- name: 'Distribution Name'
path: "%{facts.os.name}.yaml"
- name: 'Operating System Family - Major version'
path: "%{facts.os.family}/%{facts.os.release.major}.yaml"
- name: 'Operating System Family'
path: "%{facts.os.family}.yaml"
- name: 'common'
path: 'common.yaml'
85 changes: 52 additions & 33 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,6 @@
# @param ethers
# Ethernet numbers.
#
# @param file_group
# Group of the nsswitch.conf file
#
# @param file_owner
# Owner of the nsswitch.conf file
#
# @param file_perms
# Permissions for the nsswitch.conf file
#
# @param group
# Groups of users, used by getgrent() and related functions.
#
Expand Down Expand Up @@ -82,36 +73,64 @@
#
# @param file_path
# The path to `nsswitch.conf` on the system.
#
# @param file_group
# Group of the nsswitch.conf file
#
# @param file_owner
# Owner of the nsswitch.conf file
#
# @param file_perms
# Permissions for the nsswitch.conf file
#
class nsswitch (
Optional[Variant[String, Array]] $aliases = $nsswitch::params::aliases_default,
Optional[Variant[String, Array]] $automount = $nsswitch::params::automount_default,
Optional[Variant[String, Array]] $bootparams = $nsswitch::params::bootparams_default,
Optional[Variant[String, Array]] $ethers = $nsswitch::params::ethers_default,
Optional[Variant[String]] $file_group = $nsswitch::params::file_group,
Variant[String] $file_owner = 'root',
Variant[String] $file_perms = '0644',
Optional[Variant[String, Array]] $group = $nsswitch::params::group_default,
Optional[Variant[String, Array]] $hosts = $nsswitch::params::hosts_default,
Optional[Variant[String, Array]] $netgroup = $nsswitch::params::netgroup_default,
Optional[Variant[String, Array]] $netmasks = $nsswitch::params::netmasks_default,
Optional[Variant[String, Array]] $networks = $nsswitch::params::networks_default,
Optional[Variant[String, Array]] $passwd = $nsswitch::params::passwd_default,
Optional[Variant[String, Array]] $protocols = $nsswitch::params::protocols_default,
Optional[Variant[String, Array]] $publickey = $nsswitch::params::publickey_default,
Optional[Variant[String, Array]] $rpc = $nsswitch::params::rpc_default,
Optional[Variant[String, Array]] $services = $nsswitch::params::services_default,
Optional[Variant[String, Array]] $shadow = $nsswitch::params::shadow_default,
Optional[Variant[String, Array]] $shells = $nsswitch::params::shells_default,
Optional[Variant[String, Array]] $gshadow = $nsswitch::params::gshadow_default,
Optional[Variant[String, Array]] $sudoers = $nsswitch::params::sudoers_default,
Stdlib::Unixpath $file_path = '/etc/nsswitch.conf'
) inherits nsswitch::params {
Optional[Variant[String, Array]] $aliases = undef,
Optional[Variant[String, Array]] $automount = undef,
Optional[Variant[String, Array]] $bootparams = undef,
Optional[Variant[String, Array]] $ethers = undef,
Optional[Variant[String, Array]] $group = undef,
Optional[Variant[String, Array]] $hosts = undef,
Optional[Variant[String, Array]] $netgroup = undef,
Optional[Variant[String, Array]] $netmasks = undef,
Optional[Variant[String, Array]] $networks = undef,
Optional[Variant[String, Array]] $passwd = undef,
Optional[Variant[String, Array]] $protocols = undef,
Optional[Variant[String, Array]] $publickey = undef,
Optional[Variant[String, Array]] $rpc = undef,
Optional[Variant[String, Array]] $services = undef,
Optional[Variant[String, Array]] $shadow = undef,
Optional[Variant[String, Array]] $shells = undef,
Optional[Variant[String, Array]] $gshadow = undef,
Optional[Variant[String, Array]] $sudoers = undef,
Stdlib::Unixpath $file_path = '/etc/nsswitch.conf',
String[1] $file_group = 'root',
String[1] $file_owner = 'root',
Stdlib::Filemode $file_perms = '0644',
) {
file { 'nsswitch.conf':
ensure => file,
path => $file_path,
owner => $file_owner,
group => $file_group,
mode => $file_perms,
content => epp('nsswitch/nsswitch.conf.epp'),
content => epp('nsswitch/nsswitch.conf.epp', {
'aliases' => $aliases,
'automount' => $automount,
'bootparams' => $bootparams,
'ethers' => $ethers,
'group' => $group,
'hosts' => $hosts,
'netgroup' => $netgroup,
'networks' => $networks,
'passwd' => $passwd,
'protocols' => $protocols,
'publickey' => $publickey,
'rpc' => $rpc,
'services' => $services,
'shadow' => $shadow,
'shells' => $shells,
'gshadow' => $gshadow,
'sudoers' => $sudoers,
}),
}
}

0 comments on commit 51d4dad

Please sign in to comment.