Added puppet files
[clearscm.git] / puppet / init.pp
1 # RDE Puppet Base config
2 #
3 # This is the base class for all machines.
4 class rde {
5   package { 'nis':
6     ensure => 'present',
7   }
8
9   nis { 'domainname':
10     domainname => 'rde',
11   }
12
13   file { '/etc/defaultdomain':
14     path    => '/etc/defaultdomain',
15     owner   => 'root',
16     group   => 'sys',
17     mode    => '0644',
18     content => 'rde',
19     notify  => Service['nis/client'],
20   }
21
22   service { 'nis/domain':
23     ensure   => 'running',
24     enable   => 'true',
25     provider => 'smf',
26     notify   => Service['nis/client'],
27   }
28
29   nsswitch { 'nsswitch':
30     alias     => 'files nis',
31     automount => 'files nis',
32     default   => 'files',
33     group     => 'files nis',
34     host      => 'files dns nis',
35     netgroup  => 'files nis',
36     password  => 'files nis',
37     notify    => [Service['nis/client'], Service['autofs']],
38   }
39
40   service { 'nis/client':
41     ensure   => 'running',
42     enable   => 'true',
43     provider => 'smf',
44     notify   => Service['autofs'],
45   }
46
47   service { 'dns/client':
48     ensure   => 'running',
49     enable   => 'true',
50     provider => 'smf',
51   }
52
53   dns { 'dns/client':
54     #nameserver => ['10.100.13.21', '10.100.13.22'],
55     nameserver => ['10.100.0.10', '10.100.0.30'],
56     domain     => 'gddsi.com',
57     search     => ['gddsi.com'],
58     notify     => [Service['dns/client'], Service['autofs']],
59   }
60
61   package { 'ntp':
62     ensure => 'present',
63   }
64
65   file { 'ntp.conf':
66     path   => '/etc/inet/ntp.conf',
67     owner  => 'root',
68     group  => 'sys',
69     mode   => '0444',
70     source => 'puppet:///modules/rde/ntp.conf',
71     notify => Service['ntp']
72   }
73
74   service { 'ntp':
75     ensure   => 'running',
76     enable   => 'true',
77     provider => 'smf',
78   }
79
80   service { 'rpc/bind': ensure => 'running', }
81
82   service { 'zones-proxy-client':
83     ensure   => 'running',
84     enable   => 'true',
85     provider => 'smf',
86   }
87
88   # I'm not sure if this is needed on clients. It was needed for
89   # the NIS server and slave.
90   svccfg { 'binding':
91     fmri     => 'svc:/network/rpc/bind',
92     property => 'config/local_only',
93     type     => 'boolean',
94     value    => 'false',
95   }
96
97   service { 'autofs':
98     ensure   => 'running',
99     enable   => 'true',
100     provider => 'smf',
101     notify   => Service['rpc/bind'],
102   }
103
104   service { 'sendmail':
105     ensure   => 'running',
106     enable   => 'true',
107     provider => 'smf',
108   }
109
110   if ($hostname = 'rdeadm1') {
111     file_line { 'sendmail_relay':
112       ensure   => 'present',
113       path     => '/etc/mail/sendmail.cf',
114       line     => 'DSsmtp-west.gd-ms.us.',
115       notify   => Service['sendmail'],
116     }
117   } else {
118     file_line { 'sendmail_relay':
119       ensure   => 'present',
120       path     => '/etc/mail/sendmail.cf',
121       line     => 'DSrdeadm1.gddsi.com',
122       notify   => Service['sendmail'],
123     }
124   }
125
126   svccfg { 'sendmail':
127     fmri     => 'svc:/network/smtp:sendmail',
128     property => 'config/local_only',
129     type     => 'boolean',
130     value    => 'false',
131     notify   => Service['sendmail'],
132   }
133
134   file { '/etc/passwd':
135     owner => 'root',
136     group => 'sys',
137     mode  => '0644',
138   }
139
140   file { '/etc/group':
141     owner => 'root',
142     group => 'sys',
143     mode  => '0644',
144   }
145
146   file { '/etc/shadow':
147     owner => 'root',
148     group => 'sys',
149     mode  => '0400',
150   }
151
152   host { 'rdeadm1':
153     ensure  => 'present',
154     comment => 'NIS Master',
155     ip      => '10.100.13.21',
156   }
157
158   host { 'rdeadm2':
159     ensure  => 'present',
160     comment => 'NIS Slave',
161     ip      => '10.100.13.22',
162   }
163
164   file { 'motd':
165     path   => '/etc/motd',
166     owner  => 'root',
167     group  => 'sys',
168     mode   => '0444',
169     source => 'puppet:///modules/rde/motd',
170   }
171
172   file { 'issue':
173     path   => '/etc/issue',
174     owner  => 'root',
175     group  => 'sys',
176     mode   => '0444',
177     source => 'puppet:///modules/rde/issue',
178   }
179
180   file { 'sudoers':
181     path    => '/etc/sudoers.d/admins',
182     owner   => 'root',
183     group   => 'sys',
184     mode    => '0444',
185     content => "+ccadms ALL=(ALL) ALL\np2282c ALL=(ALL) NOPASSWD:ALL\nhn06511 ALL=(ALL) NOPASSWD:ALL\n",
186   }
187
188   # Add "+" to /etc/group
189   file_line { 'groups':
190     path   => '/etc/group',
191     ensure => 'present',
192     line   => '+',
193   }
194
195   # Add "+" to /etc/shadow
196   file_line { 'shadow':
197     path   => '/etc/shadow',
198     ensure => 'present',
199     line   => '+',
200   }
201
202   # Everybody mounts these
203   file_line { 'vob_storage',
204     ensure    => 'present',
205     path      => '/etc/vfstab',
206     line      => 'muosrdenas1:/rdevob1    -       /rdevob1        nfs     -       yes     -',
207   }
208   file_line { 'view_storage',
209     ensure    => 'present',
210     path      => '/etc/vfstab',
211     line      => 'muosrdenas1:/rdeview1   -       /rdeview1       nfs     -       yes     -',
212   }
213
214   if ($hostname == 'rdevob1' || $hostname == 'rdevob2') {
215     file_line { 'transfer':
216       ensure    => 'present',
217       path      => '/etc/vfstab',
218       line      => 'muosrdenas1:/transfer   -       /transfer       nfs     -       yes     -',
219     }
220     file_line { 'rdevob2',
221       ensure    => 'present',
222       path      => '/etc/vfstab',
223       line      => 'muosrdenas1:/rdevob2    -       /rdevob2        nfs     -       yes     -',
224     }
225   }
226
227   if ($hostname == 'rdevob1') {
228     file_line { 'export',
229       ensure    => 'present',
230       path      => '/etc/vfstab',
231       line      => 'muosrdenas1:/export     -       /export         nfs     -       yes     -',
232     }
233   }
234
235   if ($hostname == 'rdevob1') {
236     file_line { 'rdeview2',
237       ensure    => 'present',
238       path      => '/etc/vfstab',
239       line      => 'muosrdenas1:/rdeview2   -       /rdeview2       nfs     -       yes     -',
240     }
241   }
242
243   $std_packages = ['vim', 'gvim', 'tcsh', 'xauth', 'xclock', 'xterm', 'top', 'rdesktop', 'firefox', 'telnet', 'git', 'expect', 'make', 'gcc', 'motif', 'libxp']
244
245   package { $std_packages:
246     ensure => 'present',
247   }
248 }