Added puppet files
[clearscm.git] / puppet / init.pp
diff --git a/puppet/init.pp b/puppet/init.pp
new file mode 100644 (file)
index 0000000..3346210
--- /dev/null
@@ -0,0 +1,248 @@
+# RDE Puppet Base config
+#
+# This is the base class for all machines.
+class rde {
+  package { 'nis':
+    ensure => 'present',
+  }
+
+  nis { 'domainname':
+    domainname => 'rde',
+  }
+
+  file { '/etc/defaultdomain':
+    path    => '/etc/defaultdomain',
+    owner   => 'root',
+    group   => 'sys',
+    mode    => '0644',
+    content => 'rde',
+    notify  => Service['nis/client'],
+  }
+
+  service { 'nis/domain':
+    ensure   => 'running',
+    enable   => 'true',
+    provider => 'smf',
+    notify   => Service['nis/client'],
+  }
+
+  nsswitch { 'nsswitch':
+    alias     => 'files nis',
+    automount => 'files nis',
+    default   => 'files',
+    group     => 'files nis',
+    host      => 'files dns nis',
+    netgroup  => 'files nis',
+    password  => 'files nis',
+    notify    => [Service['nis/client'], Service['autofs']],
+  }
+
+  service { 'nis/client':
+    ensure   => 'running',
+    enable   => 'true',
+    provider => 'smf',
+    notify   => Service['autofs'],
+  }
+
+  service { 'dns/client':
+    ensure   => 'running',
+    enable   => 'true',
+    provider => 'smf',
+  }
+
+  dns { 'dns/client':
+    #nameserver => ['10.100.13.21', '10.100.13.22'],
+    nameserver => ['10.100.0.10', '10.100.0.30'],
+    domain     => 'gddsi.com',
+    search     => ['gddsi.com'],
+    notify     => [Service['dns/client'], Service['autofs']],
+  }
+
+  package { 'ntp':
+    ensure => 'present',
+  }
+
+  file { 'ntp.conf':
+    path   => '/etc/inet/ntp.conf',
+    owner  => 'root',
+    group  => 'sys',
+    mode   => '0444',
+    source => 'puppet:///modules/rde/ntp.conf',
+    notify => Service['ntp']
+  }
+
+  service { 'ntp':
+    ensure   => 'running',
+    enable   => 'true',
+    provider => 'smf',
+  }
+
+  service { 'rpc/bind': ensure => 'running', }
+
+  service { 'zones-proxy-client':
+    ensure   => 'running',
+    enable   => 'true',
+    provider => 'smf',
+  }
+
+  # I'm not sure if this is needed on clients. It was needed for
+  # the NIS server and slave.
+  svccfg { 'binding':
+    fmri     => 'svc:/network/rpc/bind',
+    property => 'config/local_only',
+    type     => 'boolean',
+    value    => 'false',
+  }
+
+  service { 'autofs':
+    ensure   => 'running',
+    enable   => 'true',
+    provider => 'smf',
+    notify   => Service['rpc/bind'],
+  }
+
+  service { 'sendmail':
+    ensure   => 'running',
+    enable   => 'true',
+    provider => 'smf',
+  }
+
+  if ($hostname = 'rdeadm1') {
+    file_line { 'sendmail_relay':
+      ensure   => 'present',
+      path     => '/etc/mail/sendmail.cf',
+      line     => 'DSsmtp-west.gd-ms.us.',
+      notify   => Service['sendmail'],
+    }
+  } else {
+    file_line { 'sendmail_relay':
+      ensure   => 'present',
+      path     => '/etc/mail/sendmail.cf',
+      line     => 'DSrdeadm1.gddsi.com',
+      notify   => Service['sendmail'],
+    }
+  }
+
+  svccfg { 'sendmail':
+    fmri     => 'svc:/network/smtp:sendmail',
+    property => 'config/local_only',
+    type     => 'boolean',
+    value    => 'false',
+    notify   => Service['sendmail'],
+  }
+
+  file { '/etc/passwd':
+    owner => 'root',
+    group => 'sys',
+    mode  => '0644',
+  }
+
+  file { '/etc/group':
+    owner => 'root',
+    group => 'sys',
+    mode  => '0644',
+  }
+
+  file { '/etc/shadow':
+    owner => 'root',
+    group => 'sys',
+    mode  => '0400',
+  }
+
+  host { 'rdeadm1':
+    ensure  => 'present',
+    comment => 'NIS Master',
+    ip      => '10.100.13.21',
+  }
+
+  host { 'rdeadm2':
+    ensure  => 'present',
+    comment => 'NIS Slave',
+    ip      => '10.100.13.22',
+  }
+
+  file { 'motd':
+    path   => '/etc/motd',
+    owner  => 'root',
+    group  => 'sys',
+    mode   => '0444',
+    source => 'puppet:///modules/rde/motd',
+  }
+
+  file { 'issue':
+    path   => '/etc/issue',
+    owner  => 'root',
+    group  => 'sys',
+    mode   => '0444',
+    source => 'puppet:///modules/rde/issue',
+  }
+
+  file { 'sudoers':
+    path    => '/etc/sudoers.d/admins',
+    owner   => 'root',
+    group   => 'sys',
+    mode    => '0444',
+    content => "+ccadms ALL=(ALL) ALL\np2282c ALL=(ALL) NOPASSWD:ALL\nhn06511 ALL=(ALL) NOPASSWD:ALL\n",
+  }
+
+  # Add "+" to /etc/group
+  file_line { 'groups':
+    path   => '/etc/group',
+    ensure => 'present',
+    line   => '+',
+  }
+
+  # Add "+" to /etc/shadow
+  file_line { 'shadow':
+    path   => '/etc/shadow',
+    ensure => 'present',
+    line   => '+',
+  }
+
+  # Everybody mounts these
+  file_line { 'vob_storage',
+    ensure    => 'present',
+    path      => '/etc/vfstab',
+    line      => 'muosrdenas1:/rdevob1    -       /rdevob1        nfs     -       yes     -',
+  }
+  file_line { 'view_storage',
+    ensure    => 'present',
+    path      => '/etc/vfstab',
+    line      => 'muosrdenas1:/rdeview1   -       /rdeview1       nfs     -       yes     -',
+  }
+
+  if ($hostname == 'rdevob1' || $hostname == 'rdevob2') {
+    file_line { 'transfer':
+      ensure    => 'present',
+      path      => '/etc/vfstab',
+      line      => 'muosrdenas1:/transfer   -       /transfer       nfs     -       yes     -',
+    }
+    file_line { 'rdevob2',
+      ensure    => 'present',
+      path      => '/etc/vfstab',
+      line      => 'muosrdenas1:/rdevob2    -       /rdevob2        nfs     -       yes     -',
+    }
+  }
+
+  if ($hostname == 'rdevob1') {
+    file_line { 'export',
+      ensure    => 'present',
+      path      => '/etc/vfstab',
+      line      => 'muosrdenas1:/export     -       /export         nfs     -       yes     -',
+    }
+  }
+
+  if ($hostname == 'rdevob1') {
+    file_line { 'rdeview2',
+      ensure    => 'present',
+      path      => '/etc/vfstab',
+      line      => 'muosrdenas1:/rdeview2   -       /rdeview2       nfs     -       yes     -',
+    }
+  }
+
+  $std_packages = ['vim', 'gvim', 'tcsh', 'xauth', 'xclock', 'xterm', 'top', 'rdesktop', 'firefox', 'telnet', 'git', 'expect', 'make', 'gcc', 'motif', 'libxp']
+
+  package { $std_packages:
+    ensure => 'present',
+  }
+}