rss2mail.pp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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
  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. # This exec seems doesn't work now (201702)
  34. # So Thinking create manually the configuration
  35. # exec { 'rss2emailconf':
  36. # creates => "${home_user}/.rss2email/feeds.dat",
  37. # user => $user,
  38. # environment => ["HOME=${home_user}"],
  39. # # command => "/usr/bin/r2e new $list && /usr/bin/r2e add main $feed && /usr/bin/r2e run --no-send",
  40. # command => "/usr/bin/r2e new ${list} && /usr/bin/r2e add main ${feed} && /usr/bin/r2e run",
  41. # require => [ Package['rss2email'], User['user_rss2mail'], File[$home_user] ],
  42. # } ->
  43. # Schedule process "/usr/bin/r2e run"
  44. cron { 'r2e: use for automatic mailing a rss feed':
  45. command => '/usr/bin/r2e run',
  46. user => $user,
  47. hour => '20',
  48. minute => '02',
  49. require => User['user_rss2mail'],
  50. }
  51. file {
  52. '/home/rss2mail/.config/rss2email.cfg':
  53. ensure => file,
  54. source => 'puppet:///modules/public/rss2mail/rss2email.cfg',
  55. owner => $user,
  56. group => $user,
  57. mode => '0755';
  58. require => File[$home_user],
  59. }
  60. } else {
  61. notify {"[Error] OS not supported (${::osfamily} - ${::operatingsystemrealease})":}
  62. }
  63. }