Guest User

Untitled

a guest
Nov 28th, 2017
355
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.61 KB | None | 0 0
  1. # /etc/puppetlabs/code/environments/development/manifests/site.pp
  2.  
  3. # replace `sensu-server.example.com` with the FQDN of the system.
  4. node 'sensu-server.example.com' {
  5.  
  6. ## Begin dependencies for Sensu server
  7. require ::epel
  8.  
  9. $dependencies = [
  10. 'nagios-plugins-ntp', # Not strictly needed. Used to demo a check.
  11. 'redis',
  12. 'rubygems',
  13. 'rubygem-json',
  14. ]
  15.  
  16. $dependencies.each |$dep| {
  17. package { $dep:
  18. ensure => 'installed',
  19. before => Class['::sensu'],
  20. }
  21. }
  22.  
  23. service { 'redis':
  24. ensure => 'running',
  25. enable => true,
  26. before => Class['::sensu'],
  27. }
  28.  
  29. class { '::rabbitmq':
  30. # By default, rabbitmq creates a user guest:guest, however they can only
  31. # authenticate from localhost Delete the guest user since a sensu user will
  32. # be created in the rabbitmq.sh script
  33. delete_guest_user => true,
  34. config_ranch => false,
  35. require => Class['::epel'],
  36. before => Class['::sensu'],
  37. }
  38. ## End dependencies for Sensu server
  39.  
  40. class { '::sensu':
  41. install_repo => true,
  42. server => true,
  43. manage_services => true,
  44. manage_user => true,
  45. rabbitmq_password => 'correct-horse-battery-staple',
  46. rabbitmq_vhost => '/sensu',
  47. spawn_limit => 16,
  48. api => true,
  49. api_user => 'admin',
  50. api_password => 'secret',
  51. #client_address => $::ipaddress_eth1,
  52. subscriptions => ['all', 'roundrobin:poller'],
  53. require => Class['::epel'],
  54. }
  55.  
  56. ## Begin setup of handler and check for demo
  57. sensu::handler { 'default':
  58. command => 'mail -s \'sensu alert\' ops@example.com',
  59. }
  60.  
  61. sensu::check { 'check_ntp':
  62. command => 'PATH=$PATH:/usr/lib64/nagios/plugins check_ntp_time -H pool.ntp.org -w 30 -c 60',
  63. handlers => 'default',
  64. subscribers => 'sensu-test',
  65. }
  66. ## End setup of handler and check for demo
  67.  
  68. ## Uchiwa - The Dashboard does not have it's own Puppet module
  69. package { 'uchiwa':
  70. ensure => 'installed',
  71. }
  72.  
  73. file { '/etc/sensu/uchiwa.json':
  74. ensure => file,
  75. content => '
  76. {
  77. "sensu": [
  78. {
  79. "name": "Site1",
  80. "host": "127.0.0.1",
  81. "port": 4567,
  82. "timeout": 5,
  83. "user": "admin",
  84. "pass": "secret"
  85. }
  86. ],
  87. "uchiwa": {
  88. "host": "0.0.0.0",
  89. "port": 3000,
  90. "user": "uchiwa",
  91. "pass": "uchiwa",
  92. "interval": 5
  93. }
  94. }',
  95. require => [
  96. Package['uchiwa'],
  97. Class['::sensu'],
  98. ],
  99. notify => Service['uchiwa'],
  100. }
  101.  
  102. service { 'uchiwa':
  103. ensure => running,
  104. enable => true,
  105. require => [
  106. File['/etc/sensu/uchiwa.json'],
  107. Package['uchiwa'],
  108. ],
  109. }
  110. }
Add Comment
Please, Sign In to add comment