rss2mail.pp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. # Valid for Debian 7
  8. if ($::operatingsystem =~ /Debian/) and ($::operatingsystemrelease =~ /^8/) {
  9. # Install "rrr2email"
  10. package { ['rss2email']:
  11. ensure => installed,
  12. }
  13. # User creation
  14. user { 'user_rss2mail':
  15. ensure => present,
  16. name => $user,
  17. home => $home_user,
  18. } ->
  19. # home user creation
  20. file { $home_user:
  21. ensure => 'directory',
  22. owner => $user,
  23. group => $user,
  24. mode => '0760',
  25. require => User['user_rss2mail'],
  26. } ->
  27. # TODO, We should probably generate the file ourself instead (customize "from")
  28. # Check if existing conf else create it
  29. # "/usr/bin/r2e new $list" : declare mail adress target
  30. # "/usr/bin/r2e add $feed" add feed
  31. # "/usr/bin/r2e run" send a mail for each new entry in feed
  32. # " --no-send" no send. Useful the first time
  33. exec { 'rss2emailconf':
  34. creates => "${home_user}/.rss2email/feeds.dat",
  35. user => $user,
  36. environment => ["HOME=${home_user}"],
  37. # command => "/usr/bin/r2e new $list && /usr/bin/r2e add main $feed && /usr/bin/r2e run --no-send",
  38. command => "/usr/bin/r2e new ${list} && /usr/bin/r2e add main ${feed} && /usr/bin/r2e run",
  39. require => [ Package['rss2email'], User['user_rss2mail'], File[$home_user] ],
  40. } ->
  41. # Schedule process "/usr/bin/r2e run"
  42. cron { 'r2e: use for automatic mailing a rss feed':
  43. command => '/usr/bin/r2e run',
  44. user => $user,
  45. hour => '20',
  46. minute => '02',
  47. require => User['user_rss2mail'],
  48. }
  49. } else {
  50. notify {"[Error] OS not supported (${::osfamily} - ${::operatingsystemrealease})":}
  51. }
  52. }