common.pp 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. # Module:: public
  2. # Manifest:: common.pp
  3. #
  4. # Lorraine Data Network http://ldn-fai.net/
  5. # Author:: Sebastien Badia (<seb@sebian.fr>)
  6. # Date:: 2013-12-07 15:28:58 +0100
  7. # Maintainer:: Sebastien Badia (<seb@sebian.fr>)
  8. #
  9. # Class:: common
  10. #
  11. #
  12. class public::common {
  13. # Internal
  14. include '::public::apt'
  15. # External (hiera for configuration)
  16. include '::dnsclient'
  17. include '::etckeeper'
  18. include '::locales'
  19. include '::rsyslog::client'
  20. include '::sudo'
  21. include '::timezone'
  22. # TODO, apt-proxy
  23. # Remove apt-xapian-index (on low memory vm, xapian take a lot of RAM/CPU)
  24. # https://bugs.launchpad.net/ubuntu/+source/apt-xapian-index/+bug/363695
  25. package {'apt-xapian-index':
  26. ensure => purged,
  27. }
  28. ensure_packages(['tmux','screen','netcat','htop','rsync','host','dmraid',
  29. 'man-db','vim','zsh','bash','iputils-ping','dnsutils','logrotate',
  30. 'python-apt','aptitude','debian-goodies','molly-guard'])
  31. # TODO, backup user
  32. sudo::conf { 'ssh_auth_sock':
  33. priority => 90,
  34. content => 'Defaults env_reset, env_keep += "SSH_AUTH_SOCK"',
  35. }
  36. sudo::conf { 'puppetdev':
  37. priority => 10,
  38. content => '%puppetdev ALL=(ALL) NOPASSWD: /usr/bin/puppet',
  39. }
  40. file {
  41. '/usr/local/bin/cronic':
  42. ensure => file,
  43. source => 'puppet:///modules/public/common/cronic',
  44. owner => root,
  45. group => root,
  46. mode => '0755';
  47. }
  48. file {
  49. '/etc/alternatives/editor':
  50. ensure => link,
  51. target => '/usr/bin/vim',
  52. require => Package['vim'];
  53. '/bin/sh':
  54. ensure => link,
  55. target => '/bin/dash';
  56. }
  57. package { 'openssh-server': ensure => present; }
  58. service { 'ssh':
  59. ensure => running,
  60. hasstatus => true,
  61. hasrestart => true,
  62. enable => true,
  63. }
  64. # Setup ssh
  65. # See ::private::common for other SSH configuration
  66. public::ssh::configline {
  67. 'LoginGraceTime':
  68. value => '60';
  69. 'UsePrivilegeSeparation':
  70. value => 'yes';
  71. 'PermitEmptyPasswords':
  72. value => 'no';
  73. 'PasswordAuthentication':
  74. value => 'no';
  75. 'StrictModes':
  76. value => 'yes';
  77. 'UseDNS':
  78. value => 'no';
  79. 'MaxStartups':
  80. value => '10:30:60';
  81. }
  82. file {
  83. '/etc/hostname':
  84. ensure => file,
  85. content => $::fqdn,
  86. owner => root,
  87. group => root,
  88. mode => '0644',
  89. notify => Exec['reload hostname'];
  90. '/etc/mailname':
  91. ensure => file,
  92. content => $::fqdn,
  93. owner => root,
  94. group => root,
  95. mode => '0644';
  96. }
  97. exec {
  98. 'reload hostname':
  99. command => "/usr/bin/hostnamectl set-hostname ${::fqdn}",
  100. user => root,
  101. refreshonly => true,
  102. logoutput => on_failure;
  103. }
  104. class {'::motd': template => 'public/common/motd.erb'; }
  105. # Avoid a strange bug with facter
  106. # Could not retrieve fact='selinux', resolution='<anonymous>'': Invalid argument - /proc/self/attr/current
  107. if $::selinux == 'false' {
  108. file {'/selinux/enforce': ensure => absent }
  109. }
  110. } # Class:: common