Skip to content

Commit 5348599

Browse files
author
Sebastian Reitenbach
committed
Add support for OpenSuse 13.1 support.
Added defaults based on a fresh OpenSuse 13.1 installation to init.pp. template got updated, to be able to manage other entries that were so far static in the file. Other OS/Distributions got updated to have the defaults as it was in the static template. Also mentioning it in README.md and metadata.json, and add spec test for it.
1 parent adf637d commit 5348599

File tree

5 files changed

+135
-3
lines changed

5 files changed

+135
-3
lines changed

README.md

+13
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Puppet v3 with Ruby 1.8.7, 1.9.3, 2.0.0 and 2.1.0.
1717
* EL 7
1818
* Solaris 10
1919
* Suse
20+
* OpenSuSE 13.1
2021

2122
===
2223

@@ -111,3 +112,15 @@ nsswitch_project
111112
String of list of sources for project database. 'USE_DEFAULTS' allows the module to choose defaults based on the platform.
112113

113114
- *Default*: 'USE_DEFAULTS'
115+
116+
networks
117+
--------
118+
String of list of sourcces for networks database. 'USE_DEFAULTS' allows the module to choose defaults based on the platform.
119+
120+
- *Default*: 'USE_DEFAULTS'
121+
122+
sudoers
123+
-------
124+
String of list of sourcces for sudoers database. 'USE_DEFAULTS' allows the module to choose defaults based on the platform.
125+
126+
- *Default*: 'USE_DEFAULTS'

manifests/init.pp

+65-1
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@
1414
$vas_nss_module_services = '',
1515
$passwd = 'USE_DEFAULTS',
1616
$shadow = 'USE_DEFAULTS',
17+
$sudoers = 'USE_DEFAULTS',
1718
$group = 'USE_DEFAULTS',
1819
$hosts = 'USE_DEFAULTS',
20+
$networks = 'USE_DEFAULTS',
1921
$automount = 'USE_DEFAULTS',
2022
$services = 'USE_DEFAULTS',
2123
$bootparams = 'USE_DEFAULTS',
@@ -42,11 +44,13 @@
4244
validate_string($vas_nss_module_services)
4345

4446
case $::osfamily {
45-
'Debian','Suse': {
47+
'Debian': {
4648
$default_passwd = 'files'
4749
$default_shadow = 'files'
50+
$default_sudoers = 'files'
4851
$default_group = 'files'
4952
$default_hosts = 'files dns'
53+
$default_networks = 'files'
5054
$default_automount = 'files'
5155
$default_services = 'files'
5256
$default_bootparams = 'files'
@@ -58,12 +62,54 @@
5862
$default_nsswitch_auth_attr = undef
5963
$default_nsswitch_prof_attr = undef
6064
}
65+
'Suse': {
66+
case $::lsbmajdistrelease {
67+
'13': {
68+
$default_passwd = 'compat'
69+
$default_shadow = undef
70+
$default_sudoers = undef
71+
$default_group = 'compat'
72+
$default_hosts = 'files mdns_minimal [NOTFOUND=return] dns'
73+
$default_networks = 'files dns'
74+
$default_automount = 'files nis'
75+
$default_services = 'files'
76+
$default_bootparams = 'files'
77+
$default_aliases = 'files'
78+
$default_publickey = 'files'
79+
$default_netgroup = 'files nis'
80+
$default_nsswitch_ipnodes = undef
81+
$default_nsswitch_printers = undef
82+
$default_nsswitch_auth_attr = undef
83+
$default_nsswitch_prof_attr = undef
84+
}
85+
default: {
86+
$default_passwd = 'files'
87+
$default_shadow = 'files'
88+
$default_sudoers = 'files'
89+
$default_group = 'files'
90+
$default_hosts = 'files dns'
91+
$default_networks = 'files'
92+
$default_automount = 'files'
93+
$default_services = 'files'
94+
$default_bootparams = 'files'
95+
$default_aliases = 'files'
96+
$default_publickey = 'files'
97+
$default_netgroup = 'files'
98+
$default_nsswitch_ipnodes = undef
99+
$default_nsswitch_printers = undef
100+
$default_nsswitch_auth_attr = undef
101+
$default_nsswitch_prof_attr = undef
102+
}
103+
}
104+
}
61105
'RedHat': {
62106
if $::operatingsystemmajrelease == '7' {
63107
$default_passwd = 'files sss'
64108
$default_shadow = 'files sss'
109+
$default_sudoers = 'files'
65110
$default_group = 'files sss'
66111
$default_hosts = 'files dns myhostname'
112+
$default_networks = 'files'
67113
$default_automount = 'files sss'
68114
$default_services = 'files sss'
69115
$default_bootparams = 'nisplus [NOTFOUND=return] files'
@@ -73,8 +119,10 @@
73119
} else {
74120
$default_passwd = 'files'
75121
$default_shadow = 'files'
122+
$default_sudoers = 'files'
76123
$default_group = 'files'
77124
$default_hosts = 'files dns'
125+
$default_networks = 'files'
78126
$default_automount = 'files'
79127
$default_services = 'files'
80128
$default_bootparams = 'files'
@@ -91,8 +139,10 @@
91139
'Solaris': {
92140
$default_passwd = 'files'
93141
$default_shadow = 'files'
142+
$default_sudoers = 'files'
94143
$default_group = 'files'
95144
$default_hosts = 'files dns'
145+
$default_networks = 'files'
96146
$default_automount = 'files'
97147
$default_services = 'files'
98148
$default_bootparams = 'files'
@@ -124,6 +174,13 @@
124174
}
125175
validate_string($shadow_real)
126176

177+
if $sudoers == 'USE_DEFAULTS' {
178+
$sudoers_real = $default_sudoers
179+
} else {
180+
$sudoers_real = $sudoers
181+
}
182+
validate_string($sudoers_real)
183+
127184
if $group == 'USE_DEFAULTS' {
128185
$group_real = $default_group
129186
} else {
@@ -138,6 +195,13 @@
138195
}
139196
validate_string($hosts_real)
140197

198+
if $networks == 'USE_DEFAULTS' {
199+
$networks_real = $default_networks
200+
} else {
201+
$networks_real = $networks
202+
}
203+
validate_string($networks_real)
204+
141205
if $automount == 'USE_DEFAULTS' {
142206
$automount_real = $default_automount
143207
} else {

metadata.json

+6
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@
6767
},
6868
{
6969
"operatingsystem": "SLED"
70+
},
71+
{
72+
"operatingsystem": "OpenSuSE",
73+
"operatingsystemrelease": [
74+
"13.1"
75+
]
7076
}
7177
],
7278
"description": "Manage nsswitch. Supports LDAP integration.",

spec/classes/init_spec.rb

+45
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,51 @@
105105
end
106106
end
107107

108+
context 'on Suse 13' do
109+
let(:facts) do
110+
{ :osfamily => 'Suse',
111+
:lsbmajdistrelease => '13',
112+
}
113+
end
114+
115+
it { should contain_class('nsswitch') }
116+
117+
it {
118+
should contain_file('nsswitch_config_file').with({
119+
'ensure' => 'file',
120+
'path' => '/etc/nsswitch.conf',
121+
'owner' => 'root',
122+
'group' => 'root',
123+
'mode' => '0644',
124+
})
125+
}
126+
127+
it {
128+
should contain_file('nsswitch_config_file').with_content(
129+
%{# This file is being maintained by Puppet.
130+
# DO NOT EDIT
131+
132+
passwd: compat
133+
group: compat
134+
135+
136+
hosts: files mdns_minimal [NOTFOUND=return] dns
137+
138+
bootparams: files
139+
ethers: files
140+
netmasks: files
141+
networks: files dns
142+
protocols: files
143+
rpc: files
144+
services: files
145+
netgroup: files nis
146+
publickey: files
147+
automount: files nis
148+
aliases: files
149+
})
150+
}
151+
end
152+
108153
context 'on RedHat 7' do
109154
let(:facts) do
110155
{ :osfamily => 'RedHat',

templates/nsswitch.conf.erb

+6-2
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,21 @@
22
# DO NOT EDIT
33

44
passwd: <%= @passwd_real %><% if @ensure_ldap == 'present' %> ldap<% end %><% if @ensure_vas == 'present' %> <%= @vas_nss_module_passwd %><% end %>
5+
<% if @shadow_real -%>
56
shadow: <%= @shadow_real %><% if @ensure_ldap == 'present' %> ldap<% end %>
7+
<% end -%>
68
group: <%= @group_real %><% if @ensure_ldap == 'present' %> ldap<% end %><% if @ensure_vas == 'present' %> <%= @vas_nss_module_group %><% end %>
79

8-
sudoers: files<% if @ensure_ldap == 'present' %> ldap<% end %>
10+
<% if @sudoers_real -%>
11+
sudoers: <%= @sudoers_real %><% if @ensure_ldap == 'present' %> ldap<% end %>
12+
<% end -%>
913

1014
hosts: <%= @hosts_real %>
1115

1216
bootparams: <%= @bootparams_real %>
1317
ethers: files
1418
netmasks: files
15-
networks: files
19+
networks: <%= @networks_real %>
1620
protocols: files<% if @ensure_ldap == 'present' %> ldap<% end %>
1721
rpc: files
1822
services: <%= @services_real %><% if @ensure_ldap == 'present' %> ldap<% end %><% if @ensure_vas == 'present' %><% if @vas_nss_module_services != '' %> <%= @vas_nss_module_services %><% end %><% end %>

0 commit comments

Comments
 (0)