cloud-mu 2.1.0beta → 3.0.0beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. checksums.yaml +5 -5
  2. data/Berksfile +4 -5
  3. data/Berksfile.lock +179 -0
  4. data/README.md +1 -6
  5. data/ansible/roles/geerlingguy.firewall/templates/firewall.bash.j2 +0 -0
  6. data/ansible/roles/mu-installer/README.md +33 -0
  7. data/ansible/roles/mu-installer/defaults/main.yml +2 -0
  8. data/ansible/roles/mu-installer/handlers/main.yml +2 -0
  9. data/ansible/roles/mu-installer/meta/main.yml +60 -0
  10. data/ansible/roles/mu-installer/tasks/main.yml +13 -0
  11. data/ansible/roles/mu-installer/tests/inventory +2 -0
  12. data/ansible/roles/mu-installer/tests/test.yml +5 -0
  13. data/ansible/roles/mu-installer/vars/main.yml +2 -0
  14. data/bin/mu-adopt +125 -0
  15. data/bin/mu-aws-setup +4 -4
  16. data/bin/mu-azure-setup +265 -0
  17. data/bin/mu-azure-tests +43 -0
  18. data/bin/mu-cleanup +20 -8
  19. data/bin/mu-configure +224 -98
  20. data/bin/mu-deploy +8 -3
  21. data/bin/mu-gcp-setup +16 -8
  22. data/bin/mu-gen-docs +92 -8
  23. data/bin/mu-load-config.rb +52 -12
  24. data/bin/mu-momma-cat +36 -0
  25. data/bin/mu-node-manage +34 -27
  26. data/bin/mu-self-update +2 -2
  27. data/bin/mu-ssh +12 -8
  28. data/bin/mu-upload-chef-artifacts +11 -4
  29. data/bin/mu-user-manage +3 -0
  30. data/cloud-mu.gemspec +8 -11
  31. data/cookbooks/firewall/libraries/helpers_iptables.rb +2 -2
  32. data/cookbooks/firewall/metadata.json +1 -1
  33. data/cookbooks/firewall/recipes/default.rb +5 -9
  34. data/cookbooks/mu-firewall/attributes/default.rb +2 -0
  35. data/cookbooks/mu-firewall/metadata.rb +1 -1
  36. data/cookbooks/mu-glusterfs/templates/default/mu-gluster-client.erb +0 -0
  37. data/cookbooks/mu-master/Berksfile +2 -2
  38. data/cookbooks/mu-master/files/default/check_mem.pl +0 -0
  39. data/cookbooks/mu-master/files/default/cloudamatic.png +0 -0
  40. data/cookbooks/mu-master/metadata.rb +5 -4
  41. data/cookbooks/mu-master/recipes/389ds.rb +1 -1
  42. data/cookbooks/mu-master/recipes/basepackages.rb +30 -10
  43. data/cookbooks/mu-master/recipes/default.rb +59 -7
  44. data/cookbooks/mu-master/recipes/firewall-holes.rb +1 -1
  45. data/cookbooks/mu-master/recipes/init.rb +65 -47
  46. data/cookbooks/mu-master/recipes/{eks-kubectl.rb → kubectl.rb} +4 -10
  47. data/cookbooks/mu-master/recipes/sssd.rb +2 -1
  48. data/cookbooks/mu-master/recipes/update_nagios_only.rb +6 -6
  49. data/cookbooks/mu-master/templates/default/web_app.conf.erb +2 -2
  50. data/cookbooks/mu-master/templates/mods/ldap.conf.erb +4 -0
  51. data/cookbooks/mu-php54/Berksfile +1 -2
  52. data/cookbooks/mu-php54/metadata.rb +4 -5
  53. data/cookbooks/mu-php54/recipes/default.rb +1 -1
  54. data/cookbooks/mu-splunk/templates/default/splunk-init.erb +0 -0
  55. data/cookbooks/mu-tools/Berksfile +3 -2
  56. data/cookbooks/mu-tools/files/default/Mu_CA.pem +33 -0
  57. data/cookbooks/mu-tools/libraries/helper.rb +20 -8
  58. data/cookbooks/mu-tools/metadata.rb +5 -2
  59. data/cookbooks/mu-tools/recipes/apply_security.rb +2 -3
  60. data/cookbooks/mu-tools/recipes/eks.rb +1 -1
  61. data/cookbooks/mu-tools/recipes/gcloud.rb +5 -30
  62. data/cookbooks/mu-tools/recipes/nagios.rb +1 -1
  63. data/cookbooks/mu-tools/recipes/rsyslog.rb +1 -0
  64. data/cookbooks/mu-tools/recipes/selinux.rb +19 -0
  65. data/cookbooks/mu-tools/recipes/split_var_partitions.rb +0 -1
  66. data/cookbooks/mu-tools/recipes/windows-client.rb +256 -122
  67. data/cookbooks/mu-tools/resources/disk.rb +3 -1
  68. data/cookbooks/mu-tools/templates/amazon/sshd_config.erb +1 -1
  69. data/cookbooks/mu-tools/templates/default/etc_hosts.erb +1 -1
  70. data/cookbooks/mu-tools/templates/default/{kubeconfig.erb → kubeconfig-eks.erb} +0 -0
  71. data/cookbooks/mu-tools/templates/default/kubeconfig-gke.erb +27 -0
  72. data/cookbooks/mu-tools/templates/windows-10/sshd_config.erb +137 -0
  73. data/cookbooks/mu-utility/recipes/nat.rb +4 -0
  74. data/extras/alpha.png +0 -0
  75. data/extras/beta.png +0 -0
  76. data/extras/clean-stock-amis +2 -2
  77. data/extras/generate-stock-images +131 -0
  78. data/extras/git-fix-permissions-hook +0 -0
  79. data/extras/image-generators/AWS/centos6.yaml +17 -0
  80. data/extras/image-generators/{aws → AWS}/centos7-govcloud.yaml +0 -0
  81. data/extras/image-generators/{aws → AWS}/centos7.yaml +0 -0
  82. data/extras/image-generators/{aws → AWS}/rhel7.yaml +0 -0
  83. data/extras/image-generators/{aws → AWS}/win2k12.yaml +0 -0
  84. data/extras/image-generators/{aws → AWS}/win2k16.yaml +0 -0
  85. data/extras/image-generators/{aws → AWS}/windows.yaml +0 -0
  86. data/extras/image-generators/{gcp → Google}/centos6.yaml +1 -0
  87. data/extras/image-generators/Google/centos7.yaml +18 -0
  88. data/extras/python_rpm/build.sh +0 -0
  89. data/extras/release.png +0 -0
  90. data/extras/ruby_rpm/build.sh +0 -0
  91. data/extras/ruby_rpm/muby.spec +1 -1
  92. data/install/README.md +43 -5
  93. data/install/deprecated-bash-library.sh +0 -0
  94. data/install/installer +1 -1
  95. data/install/jenkinskeys.rb +0 -0
  96. data/install/mu-master.yaml +55 -0
  97. data/modules/mommacat.ru +41 -7
  98. data/modules/mu.rb +444 -149
  99. data/modules/mu/adoption.rb +500 -0
  100. data/modules/mu/cleanup.rb +235 -158
  101. data/modules/mu/cloud.rb +675 -138
  102. data/modules/mu/clouds/aws.rb +156 -24
  103. data/modules/mu/clouds/aws/alarm.rb +4 -14
  104. data/modules/mu/clouds/aws/bucket.rb +60 -18
  105. data/modules/mu/clouds/aws/cache_cluster.rb +8 -20
  106. data/modules/mu/clouds/aws/collection.rb +12 -22
  107. data/modules/mu/clouds/aws/container_cluster.rb +209 -118
  108. data/modules/mu/clouds/aws/database.rb +120 -45
  109. data/modules/mu/clouds/aws/dnszone.rb +7 -18
  110. data/modules/mu/clouds/aws/endpoint.rb +5 -15
  111. data/modules/mu/clouds/aws/firewall_rule.rb +144 -72
  112. data/modules/mu/clouds/aws/folder.rb +4 -11
  113. data/modules/mu/clouds/aws/function.rb +6 -16
  114. data/modules/mu/clouds/aws/group.rb +4 -12
  115. data/modules/mu/clouds/aws/habitat.rb +11 -13
  116. data/modules/mu/clouds/aws/loadbalancer.rb +40 -28
  117. data/modules/mu/clouds/aws/log.rb +5 -13
  118. data/modules/mu/clouds/aws/msg_queue.rb +9 -24
  119. data/modules/mu/clouds/aws/nosqldb.rb +4 -12
  120. data/modules/mu/clouds/aws/notifier.rb +6 -13
  121. data/modules/mu/clouds/aws/role.rb +69 -40
  122. data/modules/mu/clouds/aws/search_domain.rb +17 -20
  123. data/modules/mu/clouds/aws/server.rb +184 -94
  124. data/modules/mu/clouds/aws/server_pool.rb +33 -38
  125. data/modules/mu/clouds/aws/storage_pool.rb +5 -12
  126. data/modules/mu/clouds/aws/user.rb +59 -33
  127. data/modules/mu/clouds/aws/userdata/linux.erb +18 -30
  128. data/modules/mu/clouds/aws/userdata/windows.erb +9 -9
  129. data/modules/mu/clouds/aws/vpc.rb +214 -145
  130. data/modules/mu/clouds/azure.rb +978 -44
  131. data/modules/mu/clouds/azure/container_cluster.rb +413 -0
  132. data/modules/mu/clouds/azure/firewall_rule.rb +500 -0
  133. data/modules/mu/clouds/azure/habitat.rb +167 -0
  134. data/modules/mu/clouds/azure/loadbalancer.rb +205 -0
  135. data/modules/mu/clouds/azure/role.rb +211 -0
  136. data/modules/mu/clouds/azure/server.rb +810 -0
  137. data/modules/mu/clouds/azure/user.rb +257 -0
  138. data/modules/mu/clouds/azure/userdata/README.md +4 -0
  139. data/modules/mu/clouds/azure/userdata/linux.erb +137 -0
  140. data/modules/mu/clouds/azure/userdata/windows.erb +275 -0
  141. data/modules/mu/clouds/azure/vpc.rb +782 -0
  142. data/modules/mu/clouds/cloudformation.rb +12 -9
  143. data/modules/mu/clouds/cloudformation/firewall_rule.rb +5 -13
  144. data/modules/mu/clouds/cloudformation/server.rb +10 -1
  145. data/modules/mu/clouds/cloudformation/server_pool.rb +1 -0
  146. data/modules/mu/clouds/cloudformation/vpc.rb +0 -2
  147. data/modules/mu/clouds/google.rb +554 -117
  148. data/modules/mu/clouds/google/bucket.rb +173 -32
  149. data/modules/mu/clouds/google/container_cluster.rb +1112 -157
  150. data/modules/mu/clouds/google/database.rb +24 -47
  151. data/modules/mu/clouds/google/firewall_rule.rb +344 -89
  152. data/modules/mu/clouds/google/folder.rb +156 -79
  153. data/modules/mu/clouds/google/group.rb +272 -82
  154. data/modules/mu/clouds/google/habitat.rb +177 -52
  155. data/modules/mu/clouds/google/loadbalancer.rb +9 -34
  156. data/modules/mu/clouds/google/role.rb +1211 -0
  157. data/modules/mu/clouds/google/server.rb +491 -227
  158. data/modules/mu/clouds/google/server_pool.rb +233 -48
  159. data/modules/mu/clouds/google/user.rb +479 -125
  160. data/modules/mu/clouds/google/userdata/linux.erb +3 -3
  161. data/modules/mu/clouds/google/userdata/windows.erb +9 -9
  162. data/modules/mu/clouds/google/vpc.rb +381 -223
  163. data/modules/mu/config.rb +689 -214
  164. data/modules/mu/config/bucket.rb +1 -1
  165. data/modules/mu/config/cache_cluster.rb +1 -1
  166. data/modules/mu/config/cache_cluster.yml +0 -4
  167. data/modules/mu/config/container_cluster.rb +18 -9
  168. data/modules/mu/config/database.rb +6 -23
  169. data/modules/mu/config/firewall_rule.rb +9 -15
  170. data/modules/mu/config/folder.rb +22 -21
  171. data/modules/mu/config/habitat.rb +22 -21
  172. data/modules/mu/config/loadbalancer.rb +2 -2
  173. data/modules/mu/config/role.rb +9 -40
  174. data/modules/mu/config/server.rb +26 -5
  175. data/modules/mu/config/server_pool.rb +1 -1
  176. data/modules/mu/config/storage_pool.rb +2 -2
  177. data/modules/mu/config/user.rb +4 -0
  178. data/modules/mu/config/vpc.rb +350 -110
  179. data/modules/mu/defaults/{amazon_images.yaml → AWS.yaml} +37 -39
  180. data/modules/mu/defaults/Azure.yaml +17 -0
  181. data/modules/mu/defaults/Google.yaml +24 -0
  182. data/modules/mu/defaults/README.md +1 -1
  183. data/modules/mu/deploy.rb +168 -125
  184. data/modules/mu/groomer.rb +2 -1
  185. data/modules/mu/groomers/ansible.rb +104 -32
  186. data/modules/mu/groomers/chef.rb +96 -44
  187. data/modules/mu/kittens.rb +20602 -0
  188. data/modules/mu/logger.rb +38 -11
  189. data/modules/mu/master.rb +90 -8
  190. data/modules/mu/master/chef.rb +2 -3
  191. data/modules/mu/master/ldap.rb +0 -1
  192. data/modules/mu/master/ssl.rb +250 -0
  193. data/modules/mu/mommacat.rb +917 -513
  194. data/modules/scratchpad.erb +1 -1
  195. data/modules/tests/super_complex_bok.yml +0 -0
  196. data/modules/tests/super_simple_bok.yml +0 -0
  197. data/roles/mu-master.json +2 -1
  198. data/spec/azure_creds +5 -0
  199. data/spec/mu.yaml +56 -0
  200. data/spec/mu/clouds/azure_spec.rb +164 -27
  201. data/spec/spec_helper.rb +5 -0
  202. data/test/clean_up.py +0 -0
  203. data/test/exec_inspec.py +0 -0
  204. data/test/exec_mu_install.py +0 -0
  205. data/test/exec_retry.py +0 -0
  206. data/test/smoke_test.rb +0 -0
  207. metadata +90 -118
  208. data/cookbooks/mu-jenkins/Berksfile +0 -14
  209. data/cookbooks/mu-jenkins/CHANGELOG.md +0 -13
  210. data/cookbooks/mu-jenkins/LICENSE +0 -37
  211. data/cookbooks/mu-jenkins/README.md +0 -105
  212. data/cookbooks/mu-jenkins/attributes/default.rb +0 -42
  213. data/cookbooks/mu-jenkins/files/default/cleanup_deploy_config.xml +0 -73
  214. data/cookbooks/mu-jenkins/files/default/deploy_config.xml +0 -44
  215. data/cookbooks/mu-jenkins/metadata.rb +0 -21
  216. data/cookbooks/mu-jenkins/recipes/default.rb +0 -195
  217. data/cookbooks/mu-jenkins/recipes/node-ssh-config.rb +0 -54
  218. data/cookbooks/mu-jenkins/recipes/public_key.rb +0 -24
  219. data/cookbooks/mu-jenkins/templates/default/example_job.config.xml.erb +0 -24
  220. data/cookbooks/mu-jenkins/templates/default/org.jvnet.hudson.plugins.SSHBuildWrapper.xml.erb +0 -14
  221. data/cookbooks/mu-jenkins/templates/default/ssh_config.erb +0 -6
  222. data/cookbooks/nagios/Berksfile +0 -11
  223. data/cookbooks/nagios/CHANGELOG.md +0 -589
  224. data/cookbooks/nagios/CONTRIBUTING.md +0 -11
  225. data/cookbooks/nagios/LICENSE +0 -37
  226. data/cookbooks/nagios/README.md +0 -328
  227. data/cookbooks/nagios/TESTING.md +0 -2
  228. data/cookbooks/nagios/attributes/config.rb +0 -171
  229. data/cookbooks/nagios/attributes/default.rb +0 -228
  230. data/cookbooks/nagios/chefignore +0 -102
  231. data/cookbooks/nagios/definitions/command.rb +0 -33
  232. data/cookbooks/nagios/definitions/contact.rb +0 -33
  233. data/cookbooks/nagios/definitions/contactgroup.rb +0 -33
  234. data/cookbooks/nagios/definitions/host.rb +0 -33
  235. data/cookbooks/nagios/definitions/hostdependency.rb +0 -33
  236. data/cookbooks/nagios/definitions/hostescalation.rb +0 -34
  237. data/cookbooks/nagios/definitions/hostgroup.rb +0 -33
  238. data/cookbooks/nagios/definitions/nagios_conf.rb +0 -38
  239. data/cookbooks/nagios/definitions/resource.rb +0 -33
  240. data/cookbooks/nagios/definitions/service.rb +0 -33
  241. data/cookbooks/nagios/definitions/servicedependency.rb +0 -33
  242. data/cookbooks/nagios/definitions/serviceescalation.rb +0 -34
  243. data/cookbooks/nagios/definitions/servicegroup.rb +0 -33
  244. data/cookbooks/nagios/definitions/timeperiod.rb +0 -33
  245. data/cookbooks/nagios/libraries/base.rb +0 -314
  246. data/cookbooks/nagios/libraries/command.rb +0 -91
  247. data/cookbooks/nagios/libraries/contact.rb +0 -230
  248. data/cookbooks/nagios/libraries/contactgroup.rb +0 -112
  249. data/cookbooks/nagios/libraries/custom_option.rb +0 -36
  250. data/cookbooks/nagios/libraries/data_bag_helper.rb +0 -23
  251. data/cookbooks/nagios/libraries/default.rb +0 -90
  252. data/cookbooks/nagios/libraries/host.rb +0 -412
  253. data/cookbooks/nagios/libraries/hostdependency.rb +0 -181
  254. data/cookbooks/nagios/libraries/hostescalation.rb +0 -173
  255. data/cookbooks/nagios/libraries/hostgroup.rb +0 -119
  256. data/cookbooks/nagios/libraries/nagios.rb +0 -282
  257. data/cookbooks/nagios/libraries/resource.rb +0 -59
  258. data/cookbooks/nagios/libraries/service.rb +0 -455
  259. data/cookbooks/nagios/libraries/servicedependency.rb +0 -215
  260. data/cookbooks/nagios/libraries/serviceescalation.rb +0 -195
  261. data/cookbooks/nagios/libraries/servicegroup.rb +0 -144
  262. data/cookbooks/nagios/libraries/timeperiod.rb +0 -160
  263. data/cookbooks/nagios/libraries/users_helper.rb +0 -54
  264. data/cookbooks/nagios/metadata.rb +0 -25
  265. data/cookbooks/nagios/recipes/_load_databag_config.rb +0 -153
  266. data/cookbooks/nagios/recipes/_load_default_config.rb +0 -241
  267. data/cookbooks/nagios/recipes/apache.rb +0 -48
  268. data/cookbooks/nagios/recipes/default.rb +0 -204
  269. data/cookbooks/nagios/recipes/nginx.rb +0 -82
  270. data/cookbooks/nagios/recipes/pagerduty.rb +0 -143
  271. data/cookbooks/nagios/recipes/server_package.rb +0 -40
  272. data/cookbooks/nagios/recipes/server_source.rb +0 -164
  273. data/cookbooks/nagios/templates/default/apache2.conf.erb +0 -96
  274. data/cookbooks/nagios/templates/default/cgi.cfg.erb +0 -266
  275. data/cookbooks/nagios/templates/default/commands.cfg.erb +0 -13
  276. data/cookbooks/nagios/templates/default/contacts.cfg.erb +0 -37
  277. data/cookbooks/nagios/templates/default/hostgroups.cfg.erb +0 -25
  278. data/cookbooks/nagios/templates/default/hosts.cfg.erb +0 -15
  279. data/cookbooks/nagios/templates/default/htpasswd.users.erb +0 -6
  280. data/cookbooks/nagios/templates/default/nagios.cfg.erb +0 -22
  281. data/cookbooks/nagios/templates/default/nginx.conf.erb +0 -62
  282. data/cookbooks/nagios/templates/default/pagerduty.cgi.erb +0 -185
  283. data/cookbooks/nagios/templates/default/resource.cfg.erb +0 -27
  284. data/cookbooks/nagios/templates/default/servicedependencies.cfg.erb +0 -15
  285. data/cookbooks/nagios/templates/default/servicegroups.cfg.erb +0 -14
  286. data/cookbooks/nagios/templates/default/services.cfg.erb +0 -14
  287. data/cookbooks/nagios/templates/default/templates.cfg.erb +0 -31
  288. data/cookbooks/nagios/templates/default/timeperiods.cfg.erb +0 -13
  289. data/extras/image-generators/aws/centos6.yaml +0 -18
  290. data/modules/mu/defaults/google_images.yaml +0 -16
  291. data/roles/mu-master-jenkins.json +0 -24
@@ -1,13 +0,0 @@
1
- # $Id: Generated by chef for node: <%= node['hostname'] %>
2
- # ----------------------------------------------------------------
3
- # NOTE: This file is controlled by chef templates!
4
- # Do not edit or change this file but change the following:
5
- # template file : commands.cfg.erb
6
- # ----------------------------------------------------------------
7
- # Command definitions
8
- # ----------------------------------------------------------------
9
-
10
- <% Nagios.instance.commands.each do |key,command| -%>
11
- <%= command.definition %>
12
-
13
- <% end -%>
@@ -1,37 +0,0 @@
1
- # $Id: Generated by chef for node: <%= node['hostname'] %>
2
- # ----------------------------------------------------------------
3
- # NOTE: This file is controlled by chef templates!
4
- # Do not edit or change this file but change the following:
5
- # template file : contacts.cfg.erb
6
- # ----------------------------------------------------------------
7
- # Contact definitions
8
- # Contactgroup definitions
9
- # ----------------------------------------------------------------
10
-
11
- <% Nagios.instance.contacts.each do |key,contact| -%>
12
- <% if contact.name.nil? # Skipping all the template contacts %>
13
- <%= contact.definition %>
14
-
15
- <% end %>
16
- <% end -%>
17
-
18
- <% Nagios.instance.contactgroups.each do |key,group| -%>
19
- <% if group.name.nil? # Skipping all the template contactgroups %>
20
- <%= group.definition %>
21
-
22
- <% end %>
23
- <% end -%>
24
-
25
- <% Nagios.instance.serviceescalations.each do |escalation| -%>
26
- <% if escalation.name.nil? # Skipping all the template serviceescalations %>
27
- <%= escalation.definition %>
28
-
29
- <% end %>
30
- <% end -%>
31
-
32
- <% Nagios.instance.hostescalations.each do |escalation| -%>
33
- <% if escalation.name.nil? # Skipping all the template hostescalations %>
34
- <%= escalation.definition %>
35
-
36
- <% end %>
37
- <% end -%>
@@ -1,25 +0,0 @@
1
- # $Id: Generated by chef for node: <%= node['hostname'] %>
2
- # ----------------------------------------------------------------
3
- # NOTE: This file is controlled by chef templates!
4
- # Do not edit or change this file but change the following:
5
- # template file : hostgroups.cfg.erb
6
- # ----------------------------------------------------------------
7
- # Hostgroup definitions
8
- # ----------------------------------------------------------------
9
-
10
- define hostgroup {
11
- hostgroup_name all
12
- alias all
13
- <% if node['nagios']['regexp_matching'] == 1 -%>
14
- members .*
15
- <% else -%>
16
- members *
17
- <% end -%>
18
- }
19
-
20
- <% Nagios.instance.hostgroups.each do |key,hostgroup| -%>
21
- <% if hostgroup.name.nil? # Skipping all the template hosts %>
22
- <%= hostgroup.definition unless hostgroup.hostgroup_name == 'all' %>
23
-
24
- <% end %>
25
- <% end -%>
@@ -1,15 +0,0 @@
1
- # $Id: Generated by chef for node: <%= node['hostname'] %>
2
- # ----------------------------------------------------------------
3
- # NOTE: This file is controlled by chef templates!
4
- # Do not edit or change this file but change the following:
5
- # template file : hosts.cfg.erb
6
- # ----------------------------------------------------------------
7
- # Host definitions
8
- # ----------------------------------------------------------------
9
-
10
- <% Nagios.instance.hosts.each do |key,host| -%>
11
- <% if host.name.nil? # Skipping all the template hosts %>
12
- <%= host.definition %>
13
-
14
- <% end %>
15
- <% end -%>
@@ -1,6 +0,0 @@
1
- # Autogenerated by Chef.
2
- <% @nagios_users.each do |user| -%>
3
- <% if user["htpasswd"] && user["htpasswd"].length > 0 -%>
4
- <%= user["id"] %>:<%= user["htpasswd"] %>
5
- <% end -%>
6
- <% end -%>
@@ -1,22 +0,0 @@
1
- # $Id: Autogenerated by Chef.
2
- # ----------------------------------------------------------------
3
- # NOTE: This file is controlled by chef templates!
4
- # Do not edit or change this file but change the following:
5
- # cookbook : nagios
6
- # template file : nagios.cfg.erb
7
- # ----------------------------------------------------------------
8
- # Nagios Configuration
9
- # ----------------------------------------------------------------
10
-
11
- <% @nagios_config.each do |key,items| %>
12
- <% case items %>
13
- <% when String %>
14
- <%= key + '=' + items %>
15
- <% when Fixnum %>
16
- <%= key + '=' + items.to_s %>
17
- <% when Array %>
18
- <% items.each do |item| %>
19
- <%= key + '=' + item %>
20
- <% end %>
21
- <% end %>
22
- <% end %>
@@ -1,62 +0,0 @@
1
- server {
2
-
3
- listen <%= @listen_port %>;
4
- <% if @nagios_url %>
5
- server_name <%= @nagios_url %>;
6
- <% else %>
7
- server_name <%= node['nagios']['server']['name'] %> <%= node['nagios']['server']['name'] %>.<%= @chef_env %>.<%= @public_domain %> <%= @fqdn %>;
8
- <% end %>
9
- access_log <%= File.join(@log_dir, 'nginx_access.log') %>;
10
- error_log <%= File.join(@log_dir, 'nginx_error.log') %>;
11
- root <%= @docroot %>;
12
- <% unless node['nagios']['allowed_ips'].empty? -%>
13
- satisfy any;
14
- <%= node['nagios']['allowed_ips'].join(";\n")%>;
15
- deny all;
16
- <% end -%>
17
- auth_basic "Nagios Server";
18
- auth_basic_user_file <%= @htpasswd_file %>;
19
- index index.php index.html index.cgi;
20
-
21
- <% if @https %>
22
- ssl on;
23
- ssl_certificate <%= @ssl_cert_file %>;
24
- ssl_certificate_key <%= @ssl_cert_key %>;
25
- ssl_ciphers HIGH;
26
- ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
27
- ssl_prefer_server_ciphers on;
28
- <% end %>
29
-
30
- <% if @cgi %>
31
- <%=
32
- nginx_dispatch(:cgi,
33
- :custom => %q(
34
- fastcgi_param AUTH_USER $remote_user;
35
- fastcgi_param REMOTE_USER $remote_user;
36
- )
37
- )
38
- %>
39
- <% end %>
40
-
41
- <% if @php %>
42
- <%=
43
- nginx_dispatch(:php,
44
- :docroot => @docroot,
45
- :custom => %q(
46
- fastcgi_param AUTH_USER $remote_user;
47
- fastcgi_param REMOTE_USER $remote_user;
48
- )
49
- )
50
- %>
51
- <% end %>
52
-
53
- <% if node['platform_family'] == 'debian' && node['nagios']['server']['install_method'] == 'package'-%>
54
- location /stylesheets {
55
- alias /etc/<%= node['nagios']['server']['vname'] %>/stylesheets;
56
- }
57
- <% end -%>
58
- location / {
59
- root <%= @docroot %>;
60
- }
61
-
62
- }
@@ -1,185 +0,0 @@
1
- #!/usr/bin/env perl
2
-
3
- use warnings;
4
- use strict;
5
-
6
- use CGI;
7
- use JSON;
8
- use LWP::UserAgent;
9
-
10
- # =============================================================================
11
-
12
- my $CONFIG = {
13
- # Nagios/Ubuntu defaults
14
- 'command_file' => '<%= @command_file %>', # External commands file
15
- # Icinga/CentOS defaults
16
- #'command_file' => '/var/spool/icinga/cmd/icinga.cmd', # External commands file
17
- # Icinga acknowledgement TTL
18
- 'ack_ttl' => 0, # Time in seconds the acknowledgement in Icinga last before
19
- # it times out automatically. 0 means the acknowledgement
20
- # never expires. If you're using Nagios this MUST be 0.
21
- };
22
-
23
- # =============================================================================
24
-
25
- sub ackHost {
26
- my ($time, $host, $comment, $author, $sticky, $notify, $persistent) = @_;
27
-
28
- # Open the external commands file
29
- if (! open (NAGIOS, '>>', $CONFIG->{'command_file'})) {
30
- # Well shizzle
31
- return (undef, $!);
32
- }
33
-
34
- # Success! Write the command
35
- if ($CONFIG->{'ack_ttl'} <= 0) {
36
- printf (NAGIOS "[%u] ACKNOWLEDGE_HOST_PROBLEM;%s;%u;%u;%u;%s;%s\n", $time, $host, $sticky, $notify, $persistent, $author, $comment);
37
-
38
- } else {
39
- printf (NAGIOS "[%u] ACKNOWLEDGE_HOST_PROBLEM_EXPIRE;%s;%u;%u;%u;%u;%s;%s\n", $time, $host, $sticky, $notify, $persistent, ($time + $CONFIG->{'ack_ttl'}), $author, $comment);
40
- }
41
- # Close the file handle
42
- close (NAGIOS);
43
-
44
- # Return with happiness
45
- return (1, undef);
46
- }
47
-
48
- # =============================================================================
49
-
50
- sub deackHost {
51
- my ($time, $host) = @_;
52
-
53
- # Open the external commands file
54
- if (! open (NAGIOS, '>>', $CONFIG->{'command_file'})) {
55
- # Well shizzle
56
- return (undef, $!);
57
- }
58
-
59
- # Success! Write the command
60
- printf (NAGIOS "[%u] REMOVE_HOST_ACKNOWLEDGEMENT;%s\n", $time, $host);
61
- # Close the file handle
62
- close (NAGIOS);
63
-
64
- # Return with happiness
65
- return (1, undef);
66
- }
67
-
68
- # =============================================================================
69
-
70
- sub ackService {
71
- my ($time, $host, $service, $comment, $author, $sticky, $notify, $persistent) = @_;
72
-
73
- # Open the external commands file
74
- if (! open (NAGIOS, '>>', $CONFIG->{'command_file'})) {
75
- # Well shizzle
76
- return (undef, $!);
77
- }
78
-
79
- # Success! Write the command
80
- if ($CONFIG->{'ack_ttl'} <= 0) {
81
- printf (NAGIOS "[%u] ACKNOWLEDGE_SVC_PROBLEM;%s;%s;%u;%u;%u;%s;%s\n", $time, $host, $service, $sticky, $notify, $persistent, $author, $comment);
82
-
83
- } else {
84
- printf (NAGIOS "[%u] ACKNOWLEDGE_SVC_PROBLEM_EXPIRE;%s;%s;%u;%u;%u;%u;%s;%s\n", $time, $host, $service, $sticky, $notify, $persistent, ($time + $CONFIG->{'ack_ttl'}), $author, $comment);
85
- }
86
-
87
- # Close the file handle
88
- close (NAGIOS);
89
-
90
- # Return with happiness
91
- return (1, undef);
92
- }
93
-
94
- # =============================================================================
95
-
96
- sub deackService {
97
- my ($time, $host, $service) = @_;
98
-
99
- # Open the external commands file
100
- if (! open (NAGIOS, '>>', $CONFIG->{'command_file'})) {
101
- # Well shizzle
102
- return (undef, $!);
103
- }
104
-
105
- # Success! Write the command
106
- printf (NAGIOS "[%u] REMOVE_SVC_ACKNOWLEDGEMENT;%s;%s\n", $time, $host, $service);
107
- # Close the file handle
108
- close (NAGIOS);
109
-
110
- # Return with happiness
111
- return (1, undef);
112
- }
113
-
114
- # =============================================================================
115
-
116
- my ($TIME, $QUERY, $POST, $JSON);
117
-
118
- $TIME = time ();
119
-
120
- $QUERY = CGI->new ();
121
-
122
- if (! defined ($POST = $QUERY->param ('POSTDATA'))) {
123
- print ("Status: 400 Requests must be POSTs\n\n400 Requests must be POSTs\n");
124
- exit (0);
125
- }
126
-
127
- if (! defined ($JSON = JSON->new ()->utf8 ()->decode ($POST))) {
128
- print ("Status: 400 Request payload must be JSON blob\n\n400 Request payload must JSON blob\n");
129
- exit (0);
130
- }
131
-
132
- if ((ref ($JSON) ne 'HASH') || ! defined ($JSON->{'messages'}) || (ref ($JSON->{'messages'}) ne 'ARRAY')) {
133
- print ("Status: 400 JSON blob does not match the expected format\n\n400 JSON blob does not match expected format\n");
134
- exit (0);
135
- }
136
-
137
- my ($message, $return);
138
- $return = {
139
- 'status' => 'okay',
140
- 'messages' => {}
141
- };
142
-
143
- MESSAGE: foreach $message (@{$JSON->{'messages'}}) {
144
- my ($hostservice, $status, $error);
145
-
146
- if ((ref ($message) ne 'HASH') || ! defined ($message->{'type'})) {
147
- next MESSAGE;
148
- }
149
-
150
- $hostservice = $message->{'data'}->{'incident'}->{'trigger_summary_data'};
151
-
152
- if (! defined ($hostservice)) {
153
- next MESSAGE;
154
- }
155
-
156
- if ($message->{'type'} eq 'incident.acknowledge') {
157
- if (! defined ($hostservice->{'SERVICEDESC'})) {
158
- ($status, $error) = ackHost ($TIME, $hostservice->{'HOSTNAME'}, 'Acknowledged by PagerDuty', 'PagerDuty', 2, 0, 0);
159
-
160
- } else {
161
- ($status, $error) = ackService ($TIME, $hostservice->{'HOSTNAME'}, $hostservice->{'SERVICEDESC'}, 'Acknowledged by PagerDuty', 'PagerDuty', 2, 0, 0);
162
- }
163
-
164
- $return->{'messages'}{$message->{'id'}} = {
165
- 'status' => ($status ? 'okay' : 'fail'),
166
- 'message' => ($error ? $error : undef)
167
- };
168
-
169
- } elsif ($message->{'type'} eq 'incident.unacknowledge') {
170
- if (! defined ($hostservice->{'SERVICEDESC'})) {
171
- ($status, $error) = deackHost ($TIME, $hostservice->{'HOSTNAME'});
172
-
173
- } else {
174
- ($status, $error) = deackService ($TIME, $hostservice->{'HOSTNAME'}, $hostservice->{'SERVICEDESC'});
175
- }
176
-
177
- $return->{'messages'}->{$message->{'id'}} = {
178
- 'status' => ($status ? 'okay' : 'fail'),
179
- 'message' => ($error ? $error : undef)
180
- };
181
- $return->{'status'} = ($status eq 'okay' ? $return->{'status'} : 'fail');
182
- }
183
- }
184
-
185
- printf ("Status: 200 Okay\nContent-type: application/json\n\n%s\n", JSON->new ()->utf8 ()->encode ($return));
@@ -1,27 +0,0 @@
1
- # $Id: Generated by chef for node: <%= node['hostname'] %>
2
- # ----------------------------------------------------------------
3
- # NOTE: This file is controlled by chef templates!
4
- # Do not edit or change this file but change the following:
5
- # template file : resource.cfg.erb
6
- # ----------------------------------------------------------------
7
- # You can define $USERx$ macros in this file, which can in turn be used
8
- # in command definitions in your host config file(s). $USERx$ macros are
9
- # useful for storing sensitive information such as usernames, passwords,
10
- # etc. They are also handy for specifying the path to plugins and
11
- # event handlers - if you decide to move the plugins or event handlers to
12
- # a different directory in the future, you can just update one or two
13
- # $USERx$ macros, instead of modifying a lot of command definitions.
14
- #
15
- # The CGIs will not attempt to read the contents of resource files, so
16
- # you can set restrictive permissions (600 or 660) on them.
17
- #
18
- # Nagios supports up to 256 $USERx$ macros ($USER1$ through $USER256$)
19
- #
20
- # Resource files may also be used to store configuration directives for
21
- # external data sources like MySQL...
22
- # ----------------------------------------------------------------
23
-
24
- <% Nagios.instance.resources.each do |key,res| -%>
25
- <%= res.definition %>
26
- <% end -%>
27
-
@@ -1,15 +0,0 @@
1
- # $Id: Generated by chef for node: <%= node['hostname'] %>
2
- # ----------------------------------------------------------------
3
- # NOTE: This file is controlled by chef templates!
4
- # Do not edit or change this file but change the following:
5
- # template file : servicedependencies.cfg.erb
6
- # ----------------------------------------------------------------
7
- # Service Dependency Definitions
8
- # ----------------------------------------------------------------
9
-
10
- <% Nagios.instance.servicedependencies.each do |key,dependency| -%>
11
- <% if dependency.name.nil? # Skipping all the template servicedependencies %>
12
- <%= dependency.definition %>
13
-
14
- <% end %>
15
- <% end -%>
@@ -1,14 +0,0 @@
1
- # ----------------------------------------------------------------
2
- # NOTE: This file is controlled by chef templates!
3
- # Do not edit or change this file but change the following:
4
- # template file : servicegroups.cfg.erb
5
- # ----------------------------------------------------------------
6
- # Servicegroup definitions
7
- # ----------------------------------------------------------------
8
-
9
- <% Nagios.instance.servicegroups.each do |key,servicegroup| -%>
10
- <% if servicegroup.name.nil? # Skipping all the template servicegroups %>
11
- <%= servicegroup.definition %>
12
-
13
- <% end %>
14
- <% end -%>
@@ -1,14 +0,0 @@
1
- # ----------------------------------------------------------------
2
- # NOTE: This file is controlled by chef templates!
3
- # Do not edit or change this file but change the following:
4
- # template file : services.cfg.erb
5
- # ----------------------------------------------------------------
6
- # Service definitions
7
- # ----------------------------------------------------------------
8
-
9
- <% Nagios.instance.services.each do |key,service| -%>
10
- <% if service.name.nil? # Skipping all the template services %>
11
- <%= service.definition %>
12
-
13
- <% end %>
14
- <% end -%>