configline.pp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # Module:: public::ssh
  2. # Manifest:: configline.pp
  3. #
  4. # Lorraine Data Network http://ldn-fai.net/
  5. # Define:: public::ssh::configline
  6. # Args::
  7. # $ensure = present,
  8. # $value = false,
  9. #
  10. define public::ssh::configline(
  11. $ensure = present,
  12. $value = false
  13. ) {
  14. Augeas {
  15. context => '/files/etc/ssh/sshd_config',
  16. notify => Service['ssh'],
  17. }
  18. case $ensure {
  19. present: {
  20. augeas { "sshd_config_${name}":
  21. changes => "set ${name} ${value}",
  22. onlyif => "get ${name} != ${value}",
  23. }
  24. }
  25. add: {
  26. augeas { "sshd_config_${name}":
  27. onlyif => "get ${name}[. = '${value}'] != ${value}",
  28. changes => [
  29. "ins ${name} after ${name}[last()]",
  30. "set ${name}[last()] ${value}"
  31. ],
  32. }
  33. }
  34. absent: {
  35. augeas { "sshd_config_${name}":
  36. changes => "rm ${name}",
  37. onlyif => "get ${name}",
  38. }
  39. }
  40. default: {
  41. fail("ensure value must be present, add or absent, not ${ensure}")
  42. }
  43. }
  44. } # Define: public::ssh::configline