rss2mail.pp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. # Si cela ne fonctionne pas, c'est sur Petit qu'il faut tapper !
  2. # Juin 2014
  3. class public::rss2mail($list, $feed) {
  4. # Vars (put in hiera ?)
  5. $user = 'rss2mail'
  6. $home_user = '/home/rss2mail'
  7. if ($::operatingsystem =~ /Debian/) and ($::operatingsystemrelease =~ /^9/) {
  8. # Install "rrr2email"
  9. package { ['rss2email']:
  10. ensure => installed,
  11. }
  12. # User creation
  13. user { 'user_rss2mail':
  14. ensure => present,
  15. name => $user,
  16. home => $home_user,
  17. } ->
  18. # home user creation
  19. file { $home_user:
  20. ensure => 'directory',
  21. owner => $user,
  22. group => $user,
  23. mode => '0760',
  24. require => User['user_rss2mail'],
  25. } ->
  26. # TODO, We should probably generate the file ourself instead (customize "from")
  27. # Check if existing conf else create it
  28. # "/usr/bin/r2e new $list" : declare mail adress target
  29. # "/usr/bin/r2e add $feed" add feed
  30. # "/usr/bin/r2e run" send a mail for each new entry in feed
  31. # " --no-send" no send. Useful the first time
  32. # This exec seems doesn't work now (201702)
  33. # So Thinking create manually the configuration
  34. # exec { 'rss2emailconf':
  35. # creates => "${home_user}/.rss2email/feeds.dat",
  36. # user => $user,
  37. # environment => ["HOME=${home_user}"],
  38. # # command => "/usr/bin/r2e new $list && /usr/bin/r2e add main $feed && /usr/bin/r2e run --no-send",
  39. # command => "/usr/bin/r2e new ${list} && /usr/bin/r2e add main ${feed} && /usr/bin/r2e run",
  40. # require => [ Package['rss2email'], User['user_rss2mail'], File[$home_user] ],
  41. # } ->
  42. # Schedule process "/usr/bin/r2e run"
  43. cron { 'r2e: use for automatic mailing a rss feed':
  44. command => '/usr/bin/r2e run',
  45. user => $user,
  46. hour => '20',
  47. minute => '02',
  48. require => User['user_rss2mail'],
  49. }
  50. file { '/home/rss2mail/.config/rss2email.cfg':
  51. ensure => file,
  52. source => 'puppet:///modules/public/rss2mail/rss2email.cfg',
  53. owner => $user,
  54. group => $user,
  55. mode => '0644',
  56. require => File[$home_user],
  57. }
  58. } else {
  59. notify {"[Error] OS not supported (${::osfamily} - ${::operatingsystemrealease})":}
  60. }
  61. }