lgweb.pp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. # Module:: public::lookingglass
  2. # Manifest:: lgweb.pp
  3. # Sources
  4. # git clone https://github.com/sileht/bird-lg -C /opt/
  5. class public::lookingglass::lgweb(
  6. $domains = ['lg.ldn-fai.net','lg.as60197.net'],
  7. $ssl_cert_source = '/etc/letsencrypt/pem/lg.ldn-fai.net.pem',
  8. $ssl_key_source = '/etc/letsencrypt/private/lg.ldn-fai.net.key',
  9. $ssl_dhparam_source = '/etc/letsencrypt/dhparam.pem',
  10. ) {
  11. package { [ 'python-dnspython', 'python-pydot', 'python-flask' ]:
  12. ensure => installed,
  13. }
  14. nginxpack::vhost::redirection { 'https-lgweb':
  15. domains => $domains,
  16. to_https => true,
  17. }
  18. nginxpack::vhost::proxy { 'lgweb':
  19. domains => $domains,
  20. to_domain => '127.0.0.1',
  21. to_port => 5000,
  22. https => true,
  23. ssl_cert_source => $ssl_cert_source,
  24. ssl_key_source => $ssl_key_source,
  25. ssl_dhparam_source => $ssl_dhparam_source,
  26. }
  27. user { 'lgweb':
  28. ensure => present,
  29. shell => '/usr/sbin/nologin',
  30. system => true,
  31. }
  32. file { '/etc/systemd/system/lgweb.service':
  33. ensure => file,
  34. owner => root,
  35. group => staff,
  36. mode => '0755',
  37. source => 'puppet:///modules/public/lookingglass/lgweb/lgweb.service',
  38. notify => Service['lgweb'],
  39. require => User['lgweb'],
  40. }
  41. service { 'lgweb':
  42. ensure => running,
  43. enable => true,
  44. require => File['/etc/systemd/system/lgweb.service'],
  45. }
  46. file { '/opt/bird-lg/':
  47. ensure => directory,
  48. owner => root,
  49. group => staff,
  50. mode => '0755',
  51. }
  52. file { '/opt/bird-lg/lg.cfg':
  53. ensure => file,
  54. owner => root,
  55. group => staff,
  56. mode => '0644',
  57. source => 'puppet:///modules/private/lookingglass/lgweb/lgweb.cfg',
  58. notify => Service['lgweb'],
  59. }
  60. file { '/opt/bird-lg/lg.py':
  61. ensure => file,
  62. owner => root,
  63. group => staff,
  64. mode => '0755',
  65. notify => Service['lgweb'],
  66. }
  67. }