configline.pp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # Module:: public::ssh
  2. # Manifest:: configline.pp
  3. #
  4. # Author:: Sebastien Badia (<seb@sebian.fr>)
  5. # Date:: 2013-08-25 20:15:45 +0200
  6. # Maintainer:: Sebastien Badia (<seb@sebian.fr>)
  7. #
  8. # Define:: public::ssh::configline
  9. # Args::
  10. # $ensure = present,
  11. # $value = false,
  12. #
  13. define public::ssh::configline(
  14. $ensure = present,
  15. $value = false
  16. ) {
  17. Augeas {
  18. context => '/files/etc/ssh/sshd_config',
  19. notify => Service['ssh'],
  20. }
  21. case $ensure {
  22. present: {
  23. augeas { "sshd_config_${name}":
  24. changes => "set ${name} ${value}",
  25. onlyif => "get ${name} != ${value}",
  26. }
  27. }
  28. add: {
  29. augeas { "sshd_config_${name}":
  30. onlyif => "get ${name}[. = '${value}'] != ${value}",
  31. changes => [
  32. "ins ${name} after ${name}[last()]",
  33. "set ${name}[last()] ${value}"
  34. ],
  35. }
  36. }
  37. absent: {
  38. augeas { "sshd_config_${name}":
  39. changes => "rm ${name}",
  40. onlyif => "get ${name}",
  41. }
  42. }
  43. default: {
  44. fail("ensure value must be present, add or absent, not ${ensure}")
  45. }
  46. }
  47. } # Define: public::ssh::configline