System configuration for OpenStack Infrastructure
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

eavesdrop.pp 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. # Eavesdrop server
  2. class openstack_project::eavesdrop (
  3. $nickpass = '',
  4. $statusbot_nick = '',
  5. $statusbot_password = '',
  6. $statusbot_server = '',
  7. $statusbot_channels = '',
  8. $statusbot_auth_nicks = '',
  9. $statusbot_wiki_user = '',
  10. $statusbot_wiki_password = '',
  11. $statusbot_wiki_url = '',
  12. $statusbot_wiki_pageid = '',
  13. $statusbot_wiki_successpageid = '',
  14. $statusbot_irclogs_url = '',
  15. $accessbot_nick = '',
  16. $accessbot_password = '',
  17. $project_config_repo = '',
  18. ) {
  19. include ::httpd
  20. include meetbot
  21. $vhost_extra = '
  22. <Location /alert>
  23. Header set Access-Control-Allow-Origin "*"
  24. </Location>
  25. '
  26. meetbot::site { 'openstack':
  27. nick => 'openstack',
  28. nickpass => $nickpass,
  29. network => 'FreeNode',
  30. server => 'chat.freenode.net:7000',
  31. use_ssl => 'True',
  32. vhost_extra => $vhost_extra,
  33. manage_index => false,
  34. channels => [
  35. '#akanda',
  36. '#cloudkitty',
  37. '#dox',
  38. '#heat',
  39. '#kolla',
  40. '#midonet',
  41. '#murano',
  42. '#openstack',
  43. '#openstack-ansible',
  44. '#openstack-api',
  45. '#openstack-app-catalog',
  46. '#openstack-barbican',
  47. '#openstack-blazar',
  48. '#openstack-chef',
  49. '#openstack-cinder',
  50. '#openstack-cloudpulse',
  51. '#openstack-community',
  52. '#openstack-containers',
  53. '#openstack-cue',
  54. '#openstack-defcore',
  55. '#openstack-dev',
  56. '#openstack-diversity',
  57. '#openstack-dns',
  58. '#openstack-doc',
  59. '#openstack-dragonflow',
  60. '#openstack-fr',
  61. '#openstack-freezer',
  62. '#openstack-glance',
  63. '#openstack-gslb',
  64. '#openstack-ha',
  65. '#openstack-heat-translator',
  66. '#openstack-horizon',
  67. '#openstack-i18n',
  68. '#openstack-infra',
  69. '#openstack-infra-incident',
  70. '#openstack-ironic',
  71. '#openstack-keystone',
  72. '#openstack-ko',
  73. '#openstack-kuryr',
  74. '#openstack-lbaas',
  75. '#openstack-manila',
  76. '#openstack-meeting',
  77. '#openstack-meeting-alt',
  78. '#openstack-meeting-3',
  79. '#openstack-meeting-4',
  80. '#openstack-meeting-cp',
  81. '#openstack-mistral',
  82. '#openstack-monasca',
  83. '#openstack-neutron',
  84. '#openstack-neutron-ovn',
  85. '#openstack-neutron-release',
  86. '#openstack-nova',
  87. '#openstack-operators',
  88. '#openstack-performance',
  89. '#openstack-opw',
  90. '#openstack-oslo',
  91. '#openstack-qa',
  92. '#openstack-rally',
  93. '#openstack-rating',
  94. '#openstack-release',
  95. '#openstack-rpm-packaging',
  96. '#openstack-sahara',
  97. '#openstack-sdks',
  98. '#openstack-searchlight',
  99. '#openstack-security',
  100. '#openstack-smaug',
  101. '#openstack-sprint',
  102. '#openstack-stable',
  103. '#openstack-storlets',
  104. '#openstack-swauth',
  105. '#openstack-swift',
  106. '#openstack-tailgate',
  107. '#openstack-telemetry',
  108. '#openstack-trove',
  109. '#openstack-ux',
  110. '#openstack-vmware-nsx',
  111. '#openstack-watcher',
  112. '#openstack-zaqar',
  113. '#openstack-zephyr',
  114. '#puppet-openstack',
  115. '#refstack',
  116. '#senlin',
  117. '#storyboard',
  118. '#swift3',
  119. '#tacker',
  120. '#tripleo',
  121. ],
  122. }
  123. class { 'statusbot':
  124. nick => $statusbot_nick,
  125. password => $statusbot_password,
  126. server => $statusbot_server,
  127. channels => $statusbot_channels,
  128. auth_nicks => $statusbot_auth_nicks,
  129. wiki_user => $statusbot_wiki_user,
  130. wiki_password => $statusbot_wiki_password,
  131. wiki_url => $statusbot_wiki_url,
  132. wiki_pageid => $statusbot_wiki_pageid,
  133. wiki_successpageid => $statusbot_wiki_successpageid,
  134. irclogs_url => $statusbot_irclogs_url,
  135. }
  136. file { '/srv/meetbot-openstack/alert':
  137. ensure => link,
  138. target => '/var/lib/statusbot/www',
  139. require => Class['statusbot'],
  140. }
  141. httpd_mod { 'headers':
  142. ensure => present,
  143. }
  144. class { 'project_config':
  145. url => $project_config_repo,
  146. }
  147. class { 'accessbot':
  148. nick => $accessbot_nick,
  149. password => $accessbot_password,
  150. server => $statusbot_server,
  151. channel_file => $::project_config::accessbot_channels_yaml,
  152. require => $::project_config::config_dir,
  153. }
  154. # Needed to allow Jenkins jobs to publish meeting info to
  155. # the eavesdrop server.
  156. include openstack_project
  157. class { 'jenkins::jenkinsuser':
  158. ssh_key => $openstack_project::jenkins_ssh_key,
  159. }
  160. file { '/srv/yaml2ical':
  161. ensure => directory,
  162. owner => 'jenkins',
  163. group => 'jenkins',
  164. require => User['jenkins'],
  165. }
  166. file { '/srv/yaml2ical/calendars':
  167. ensure => directory,
  168. owner => 'jenkins',
  169. group => 'jenkins',
  170. require => File['/srv/yaml2ical'],
  171. }
  172. file { '/srv/meetbot-openstack/index.html':
  173. ensure => link,
  174. target => '/srv/yaml2ical/index.html',
  175. require => File['/srv/yaml2ical'],
  176. }
  177. file { '/srv/meetbot-openstack/irc-meetings.ical':
  178. ensure => link,
  179. target => '/srv/yaml2ical/irc-meetings.ical',
  180. require => File['/srv/yaml2ical'],
  181. }
  182. file { '/srv/meetbot-openstack/calendars/':
  183. ensure => link,
  184. target => '/srv/yaml2ical/calendars/',
  185. require => File['/srv/yaml2ical'],
  186. }
  187. }