lgweb.pp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. $add_config_source = 'puppet:///modules/private/nginx/leela/lg.conf',
  11. ) {
  12. package { [ 'python-dnspython', 'python-pydot', 'python-flask' ]:
  13. ensure => installed,
  14. }
  15. nginxpack::vhost::redirection { 'https-lgweb':
  16. domains => $domains,
  17. to_https => true,
  18. }
  19. nginxpack::vhost::proxy { 'lgweb':
  20. domains => $domains,
  21. to_domain => '127.0.0.1',
  22. to_port => 5000,
  23. https => true,
  24. ssl_cert_source => $ssl_cert_source,
  25. ssl_key_source => $ssl_key_source,
  26. ssl_dhparam_source => $ssl_dhparam_source,
  27. add_config_source => $add_config_source,
  28. }
  29. user { 'lgweb':
  30. ensure => present,
  31. shell => '/usr/sbin/nologin',
  32. system => true,
  33. }
  34. file { '/etc/systemd/system/lgweb.service':
  35. ensure => file,
  36. owner => root,
  37. group => staff,
  38. mode => '0755',
  39. source => 'puppet:///modules/public/lookingglass/lgweb/lgweb.service',
  40. notify => Service['lgweb'],
  41. require => User['lgweb'],
  42. }
  43. service { 'lgweb':
  44. ensure => running,
  45. enable => true,
  46. require => File['/etc/systemd/system/lgweb.service'],
  47. }
  48. file { '/opt/bird-lg/':
  49. ensure => directory,
  50. owner => root,
  51. group => staff,
  52. mode => '0755',
  53. }
  54. file { '/opt/bird-lg/lg.cfg':
  55. ensure => file,
  56. owner => root,
  57. group => staff,
  58. mode => '0644',
  59. source => 'puppet:///modules/private/lookingglass/lgweb/lgweb.cfg',
  60. notify => Service['lgweb'],
  61. }
  62. file { '/opt/bird-lg/lg.py':
  63. ensure => file,
  64. owner => root,
  65. group => staff,
  66. mode => '0755',
  67. notify => Service['lgweb'],
  68. }
  69. }