common.pp 3.1 KB

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