freighthop 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (270) hide show
  1. data/Puppetfile +1 -0
  2. data/Puppetfile.lock +3 -0
  3. data/Vagrantfile +1 -1
  4. data/bin/fh +2 -78
  5. data/lib/freighthop/cli/help.rb +69 -0
  6. data/lib/freighthop/cli/ssh.rb +46 -0
  7. data/lib/freighthop/cli/vagrant.rb +26 -0
  8. data/lib/freighthop/cli.rb +40 -0
  9. data/lib/freighthop/config.rb +4 -0
  10. data/lib/freighthop/vagrant_env.rb +24 -0
  11. data/lib/freighthop/version.rb +1 -1
  12. data/lib/freighthop.rb +7 -4
  13. data/local_modules/freighthop/manifests/database/mysql.pp +20 -0
  14. data/local_modules/freighthop/manifests/database/postgres.pp +6 -6
  15. data/local_modules/freighthop/manifests/database.pp +6 -8
  16. data/local_modules/freighthop/manifests/init.pp +1 -8
  17. data/local_modules/freighthop/manifests/params.pp +0 -3
  18. data/modules/apt/CHANGELOG +12 -2
  19. data/modules/apt/Gemfile +6 -5
  20. data/modules/apt/Gemfile.lock +40 -5
  21. data/modules/apt/Modulefile +1 -1
  22. data/modules/apt/README.md +2 -1
  23. data/modules/apt/Rakefile +1 -0
  24. data/modules/apt/manifests/init.pp +4 -1
  25. data/modules/apt/manifests/ppa.pp +1 -1
  26. data/modules/apt/manifests/update.pp +1 -0
  27. data/modules/apt/metadata.json +21 -13
  28. data/modules/apt/spec/defines/ppa_spec.rb +3 -3
  29. data/modules/apt/spec/defines/source_spec.rb +2 -2
  30. data/modules/apt/spec/spec_helper_system.rb +30 -0
  31. data/modules/apt/spec/system/apt_builddep_spec.rb +38 -0
  32. data/modules/apt/spec/system/apt_key_spec.rb +53 -0
  33. data/modules/apt/spec/system/apt_ppa_spec.rb +59 -0
  34. data/modules/apt/spec/system/apt_source_spec.rb +51 -0
  35. data/modules/apt/spec/system/basic_spec.rb +10 -0
  36. data/modules/apt/spec/system/class_spec.rb +20 -0
  37. data/modules/apt/templates/source.list.erb +2 -2
  38. data/modules/freighthop/manifests/database/mysql.pp +20 -0
  39. data/modules/freighthop/manifests/database/postgres.pp +6 -6
  40. data/modules/freighthop/manifests/database.pp +6 -8
  41. data/modules/freighthop/manifests/init.pp +1 -8
  42. data/modules/freighthop/manifests/params.pp +0 -3
  43. data/modules/mysql/CHANGELOG +403 -0
  44. data/modules/mysql/Gemfile +24 -0
  45. data/modules/mysql/Gemfile.lock +129 -0
  46. data/modules/mysql/LICENSE +201 -0
  47. data/modules/mysql/Modulefile +9 -0
  48. data/modules/mysql/README.md +492 -0
  49. data/modules/mysql/Rakefile +2 -0
  50. data/modules/mysql/TODO +8 -0
  51. data/modules/mysql/files/mysqltuner.pl +966 -0
  52. data/modules/mysql/lib/puppet/parser/functions/mysql_deepmerge.rb +52 -0
  53. data/modules/mysql/lib/puppet/parser/functions/mysql_password.rb +15 -0
  54. data/modules/mysql/lib/puppet/parser/functions/mysql_strip_hash.rb +21 -0
  55. data/modules/mysql/lib/puppet/provider/database/mysql.rb +52 -0
  56. data/modules/mysql/lib/puppet/provider/database_grant/mysql.rb +210 -0
  57. data/modules/mysql/lib/puppet/provider/database_user/mysql.rb +76 -0
  58. data/modules/mysql/lib/puppet/provider/mysql.rb +67 -0
  59. data/modules/mysql/lib/puppet/provider/mysql_database/mysql.rb +68 -0
  60. data/modules/mysql/lib/puppet/provider/mysql_grant/mysql.rb +115 -0
  61. data/modules/mysql/lib/puppet/provider/mysql_user/mysql.rb +115 -0
  62. data/modules/mysql/lib/puppet/type/database.rb +21 -0
  63. data/modules/mysql/lib/puppet/type/database_grant.rb +79 -0
  64. data/modules/mysql/lib/puppet/type/database_user.rb +31 -0
  65. data/modules/mysql/lib/puppet/type/mysql_database.rb +22 -0
  66. data/modules/mysql/lib/puppet/type/mysql_grant.rb +72 -0
  67. data/modules/mysql/lib/puppet/type/mysql_user.rb +45 -0
  68. data/modules/mysql/manifests/backup.pp +31 -0
  69. data/modules/mysql/manifests/bindings/java.pp +10 -0
  70. data/modules/mysql/manifests/bindings/perl.pp +10 -0
  71. data/modules/mysql/manifests/bindings/php.pp +10 -0
  72. data/modules/mysql/manifests/bindings/python.pp +10 -0
  73. data/modules/mysql/manifests/bindings/ruby.pp +10 -0
  74. data/modules/mysql/manifests/bindings.pp +33 -0
  75. data/modules/mysql/manifests/client/install.pp +8 -0
  76. data/modules/mysql/manifests/client.pp +27 -0
  77. data/modules/mysql/manifests/db.pp +59 -0
  78. data/modules/mysql/manifests/init.pp +100 -0
  79. data/modules/mysql/manifests/params.pp +230 -0
  80. data/modules/mysql/manifests/server/account_security.pp +22 -0
  81. data/modules/mysql/manifests/server/backup.pp +56 -0
  82. data/modules/mysql/manifests/server/config.pp +31 -0
  83. data/modules/mysql/manifests/server/install.pp +9 -0
  84. data/modules/mysql/manifests/server/monitor.pp +24 -0
  85. data/modules/mysql/manifests/server/mysqltuner.pp +9 -0
  86. data/modules/mysql/manifests/server/providers.pp +8 -0
  87. data/modules/mysql/manifests/server/root_password.pp +21 -0
  88. data/modules/mysql/manifests/server/service.pp +19 -0
  89. data/modules/mysql/manifests/server.pp +69 -0
  90. data/modules/mysql/metadata.json +289 -0
  91. data/modules/mysql/spec/classes/mysql_bindings_spec.rb +58 -0
  92. data/modules/mysql/spec/classes/mysql_client_spec.rb +16 -0
  93. data/modules/mysql/spec/classes/mysql_server_account_security_spec.rb +41 -0
  94. data/modules/mysql/spec/classes/mysql_server_backup_spec.rb +112 -0
  95. data/modules/mysql/spec/classes/mysql_server_monitor_spec.rb +31 -0
  96. data/modules/mysql/spec/classes/mysql_server_mysqltuner_spec.rb +5 -0
  97. data/modules/mysql/spec/classes/mysql_server_spec.rb +162 -0
  98. data/modules/mysql/spec/defines/mysql_db_spec.rb +51 -0
  99. data/modules/mysql/spec/spec.opts +6 -0
  100. data/modules/mysql/spec/spec_helper.rb +5 -0
  101. data/modules/mysql/spec/spec_helper_system.rb +28 -0
  102. data/modules/mysql/spec/system/mysql_account_delete_spec.rb +35 -0
  103. data/modules/mysql/spec/system/mysql_backup_spec.rb +77 -0
  104. data/modules/mysql/spec/system/mysql_bindings_spec.rb +90 -0
  105. data/modules/mysql/spec/system/mysql_db_spec.rb +61 -0
  106. data/modules/mysql/spec/system/mysql_server_monitor_spec.rb +30 -0
  107. data/modules/mysql/spec/system/mysql_server_root_password_spec.rb +71 -0
  108. data/modules/mysql/spec/system/mysql_server_spec.rb +85 -0
  109. data/modules/mysql/spec/system/types/mysql_grant_spec.rb +314 -0
  110. data/modules/mysql/spec/system/types/mysql_user_spec.rb +35 -0
  111. data/modules/mysql/spec/unit/mysql_password_spec.rb +27 -0
  112. data/modules/mysql/spec/unit/puppet/functions/mysql_deepmerge_spec.rb +77 -0
  113. data/modules/mysql/spec/unit/puppet/provider/database/mysql_spec.rb +86 -0
  114. data/modules/mysql/spec/unit/puppet/provider/database_grant/mysql_spec.rb +95 -0
  115. data/modules/mysql/spec/unit/puppet/provider/database_user/mysql_spec.rb +119 -0
  116. data/modules/mysql/spec/unit/puppet/provider/mysql_database/mysql_spec.rb +118 -0
  117. data/modules/mysql/spec/unit/puppet/provider/mysql_user/mysql_spec.rb +130 -0
  118. data/modules/mysql/spec/unit/puppet/type/mysql_database_spec.rb +29 -0
  119. data/modules/mysql/spec/unit/puppet/type/mysql_user_spec.rb +30 -0
  120. data/modules/mysql/templates/my.cnf.erb +17 -0
  121. data/modules/mysql/templates/my.cnf.pass.erb +7 -0
  122. data/modules/mysql/templates/my.conf.cnf.erb +17 -0
  123. data/modules/mysql/templates/mysqlbackup.sh.erb +57 -0
  124. data/modules/mysql/tests/backup.pp +8 -0
  125. data/modules/mysql/tests/bindings.pp +3 -0
  126. data/modules/mysql/tests/init.pp +1 -0
  127. data/modules/mysql/tests/java.pp +1 -0
  128. data/modules/mysql/tests/mysql_database.pp +12 -0
  129. data/modules/mysql/tests/mysql_grant.pp +5 -0
  130. data/modules/mysql/tests/mysql_user.pp +23 -0
  131. data/modules/mysql/tests/perl.pp +1 -0
  132. data/modules/mysql/tests/python.pp +1 -0
  133. data/modules/mysql/tests/ruby.pp +1 -0
  134. data/modules/mysql/tests/server/account_security.pp +4 -0
  135. data/modules/mysql/tests/server/config.pp +11 -0
  136. data/modules/mysql/tests/server.pp +3 -0
  137. data/modules/postgresql/Changelog +191 -0
  138. data/modules/postgresql/Gemfile +1 -0
  139. data/modules/postgresql/Gemfile.lock +9 -0
  140. data/modules/postgresql/LICENSE +198 -12
  141. data/modules/postgresql/Modulefile +2 -2
  142. data/modules/postgresql/NOTICE +14 -0
  143. data/modules/postgresql/README.md +435 -184
  144. data/modules/postgresql/files/validate_postgresql_connection.sh +31 -0
  145. data/modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb +37 -0
  146. data/modules/postgresql/lib/puppet/provider/postgresql_psql/ruby.rb +4 -0
  147. data/modules/postgresql/lib/puppet/type/postgresql_conf.rb +31 -0
  148. data/modules/postgresql/lib/puppet/type/postgresql_psql.rb +4 -0
  149. data/modules/postgresql/manifests/client.pp +17 -16
  150. data/modules/postgresql/manifests/globals.pp +95 -0
  151. data/modules/postgresql/manifests/lib/devel.pp +15 -0
  152. data/modules/postgresql/manifests/lib/java.pp +15 -0
  153. data/modules/postgresql/manifests/lib/python.pp +13 -0
  154. data/modules/postgresql/manifests/params.pp +127 -222
  155. data/modules/postgresql/manifests/repo/apt_postgresql_org.pp +30 -0
  156. data/modules/postgresql/manifests/repo/yum_postgresql_org.pp +38 -0
  157. data/modules/postgresql/manifests/repo.pp +22 -0
  158. data/modules/postgresql/manifests/server/config.pp +113 -0
  159. data/modules/postgresql/manifests/server/config_entry.pp +43 -0
  160. data/modules/postgresql/manifests/server/contrib.pp +27 -0
  161. data/modules/postgresql/manifests/server/database.pp +75 -0
  162. data/modules/postgresql/manifests/server/database_grant.pp +18 -0
  163. data/modules/postgresql/manifests/server/db.pp +36 -0
  164. data/modules/postgresql/manifests/server/firewall.pp +21 -0
  165. data/modules/postgresql/manifests/server/grant.pp +81 -0
  166. data/modules/postgresql/manifests/server/initdb.pp +52 -0
  167. data/modules/postgresql/manifests/server/install.pp +49 -0
  168. data/modules/postgresql/manifests/server/passwd.pp +34 -0
  169. data/modules/postgresql/manifests/server/pg_hba_rule.pp +54 -0
  170. data/modules/postgresql/manifests/server/plperl.pp +27 -0
  171. data/modules/postgresql/manifests/server/reload.pp +15 -0
  172. data/modules/postgresql/manifests/{role.pp → server/role.pp} +19 -33
  173. data/modules/postgresql/manifests/server/service.pp +40 -0
  174. data/modules/postgresql/manifests/{table_grant.pp → server/table_grant.pp} +4 -4
  175. data/modules/postgresql/manifests/server/tablespace.pp +42 -0
  176. data/modules/postgresql/manifests/server.pp +61 -83
  177. data/modules/postgresql/manifests/validate_db_connection.pp +49 -50
  178. data/modules/postgresql/metadata.json +123 -73
  179. data/modules/postgresql/spec/spec_helper_system.rb +13 -1
  180. data/modules/postgresql/spec/system/client_spec.rb +22 -0
  181. data/modules/postgresql/spec/system/common_patterns_spec.rb +53 -0
  182. data/modules/postgresql/spec/system/contrib_spec.rb +33 -0
  183. data/modules/postgresql/spec/system/lib/devel_spec.rb +22 -0
  184. data/modules/postgresql/spec/system/lib/java_spec.rb +25 -0
  185. data/modules/postgresql/spec/system/lib/python_spec.rb +24 -0
  186. data/modules/postgresql/spec/system/postgresql_psql_spec.rb +51 -0
  187. data/modules/postgresql/spec/system/server/config_entry_spec.rb +32 -0
  188. data/modules/postgresql/spec/system/server/database_grant_spec.rb +54 -0
  189. data/modules/postgresql/spec/system/server/database_spec.rb +35 -0
  190. data/modules/postgresql/spec/system/server/db_spec.rb +143 -0
  191. data/modules/postgresql/spec/system/server/grant_spec.rb +55 -0
  192. data/modules/postgresql/spec/system/server/pg_hba_rule_spec.rb +85 -0
  193. data/modules/postgresql/spec/system/server/plperl_spec.rb +29 -0
  194. data/modules/postgresql/spec/system/server/role_spec.rb +103 -0
  195. data/modules/postgresql/spec/system/server/table_grant_spec.rb +72 -0
  196. data/modules/postgresql/spec/system/server/tablespace_spec.rb +74 -0
  197. data/modules/postgresql/spec/system/server_spec.rb +217 -0
  198. data/modules/postgresql/spec/system/validate_db_connection_spec.rb +91 -0
  199. data/modules/postgresql/spec/unit/classes/client_spec.rb +27 -2
  200. data/modules/postgresql/spec/unit/classes/globals_spec.rb +28 -0
  201. data/modules/postgresql/spec/unit/classes/lib/devel_spec.rb +12 -0
  202. data/modules/postgresql/spec/unit/classes/{postgresql_java_spec.rb → lib/java_spec.rb} +9 -19
  203. data/modules/postgresql/spec/unit/classes/lib/python_spec.rb +31 -0
  204. data/modules/postgresql/spec/unit/classes/params_spec.rb +2 -1
  205. data/modules/postgresql/spec/unit/classes/repo_spec.rb +17 -0
  206. data/modules/postgresql/spec/unit/classes/server/contrib_spec.rb +42 -0
  207. data/modules/postgresql/spec/unit/classes/server/initdb_spec.rb +28 -0
  208. data/modules/postgresql/spec/unit/classes/server/plperl_spec.rb +45 -0
  209. data/modules/postgresql/spec/unit/classes/server_spec.rb +83 -2
  210. data/modules/postgresql/spec/unit/defines/server/config_entry_spec.rb +23 -0
  211. data/modules/postgresql/spec/unit/defines/server/database_grant_spec.rb +26 -0
  212. data/modules/postgresql/spec/unit/defines/server/database_spec.rb +16 -0
  213. data/modules/postgresql/spec/unit/defines/server/db_spec.rb +28 -0
  214. data/modules/postgresql/spec/unit/defines/{database_grant_spec.rb → server/grant_spec.rb} +7 -4
  215. data/modules/postgresql/spec/unit/defines/{pg_hba_rule_spec.rb → server/pg_hba_rule_spec.rb} +59 -2
  216. data/modules/postgresql/spec/unit/defines/server/role_spec.rb +23 -0
  217. data/modules/postgresql/spec/unit/defines/server/table_grant_spec.rb +27 -0
  218. data/modules/postgresql/spec/unit/defines/server/tablespace_spec.rb +23 -0
  219. data/modules/postgresql/spec/unit/defines/validate_db_connection_spec.rb +22 -9
  220. data/modules/postgresql/spec/unit/provider/postgresql_conf/parsed_spec.rb +112 -0
  221. data/modules/postgresql/spec/unit/puppet/provider/postgresql_psql/ruby_spec.rb +29 -0
  222. data/modules/postgresql/spec/unit/puppet/type/postgresql_psql_spec.rb +1 -0
  223. data/modules/postgresql/spec/unit/type/postgresql_conf_spec.rb +50 -0
  224. metadata +177 -53
  225. data/modules/postgresql/examples/init.pp +0 -1
  226. data/modules/postgresql/examples/official-postgresql-repos.pp +0 -19
  227. data/modules/postgresql/examples/postgresql_database.pp +0 -22
  228. data/modules/postgresql/examples/postgresql_db.pp +0 -30
  229. data/modules/postgresql/examples/postgresql_grant.pp +0 -14
  230. data/modules/postgresql/examples/postgresql_pg_hba_rule.pp +0 -18
  231. data/modules/postgresql/examples/postgresql_pgconf_extras.pp +0 -19
  232. data/modules/postgresql/examples/postgresql_tablespace.pp +0 -73
  233. data/modules/postgresql/examples/postgresql_user.pp +0 -28
  234. data/modules/postgresql/examples/server.pp +0 -10
  235. data/modules/postgresql/lib/facter/postgres_default_version.rb +0 -69
  236. data/modules/postgresql/manifests/config/afterservice.pp +0 -47
  237. data/modules/postgresql/manifests/config/beforeservice.pp +0 -171
  238. data/modules/postgresql/manifests/config.pp +0 -74
  239. data/modules/postgresql/manifests/contrib.pp +0 -29
  240. data/modules/postgresql/manifests/database.pp +0 -85
  241. data/modules/postgresql/manifests/database_grant.pp +0 -35
  242. data/modules/postgresql/manifests/database_user.pp +0 -60
  243. data/modules/postgresql/manifests/db.pp +0 -77
  244. data/modules/postgresql/manifests/devel.pp +0 -27
  245. data/modules/postgresql/manifests/grant.pp +0 -77
  246. data/modules/postgresql/manifests/init.pp +0 -145
  247. data/modules/postgresql/manifests/initdb.pp +0 -52
  248. data/modules/postgresql/manifests/java.pp +0 -29
  249. data/modules/postgresql/manifests/package_source/apt_postgresql_org.pp +0 -21
  250. data/modules/postgresql/manifests/package_source/yum_postgresql_org.pp +0 -30
  251. data/modules/postgresql/manifests/pg_hba.pp +0 -19
  252. data/modules/postgresql/manifests/pg_hba_rule.pp +0 -41
  253. data/modules/postgresql/manifests/plperl.pp +0 -24
  254. data/modules/postgresql/manifests/psql.pp +0 -56
  255. data/modules/postgresql/manifests/python.pp +0 -18
  256. data/modules/postgresql/manifests/tablespace.pp +0 -59
  257. data/modules/postgresql/spec/system/install_spec.rb +0 -707
  258. data/modules/postgresql/spec/system/non_defaults_spec.rb +0 -114
  259. data/modules/postgresql/spec/unit/classes/contrib_spec.rb +0 -11
  260. data/modules/postgresql/spec/unit/classes/devel_spec.rb +0 -11
  261. data/modules/postgresql/spec/unit/classes/init_spec.rb +0 -71
  262. data/modules/postgresql/spec/unit/classes/postgresql_python_spec.rb +0 -53
  263. data/modules/postgresql/spec/unit/defines/database_spec.rb +0 -14
  264. data/modules/postgresql/spec/unit/defines/database_user_spec.rb +0 -19
  265. data/modules/postgresql/spec/unit/defines/db_spec.rb +0 -20
  266. data/modules/postgresql/spec/unit/defines/pg_hba_spec.rb +0 -20
  267. data/modules/postgresql/spec/unit/defines/psql_spec.rb +0 -20
  268. data/modules/postgresql/spec/unit/defines/role_spec.rb +0 -14
  269. data/modules/postgresql/spec/unit/defines/tablespace_spec.rb +0 -19
  270. data/modules/postgresql/spec/unit/facts/postgres_default_version_spec.rb +0 -14
@@ -0,0 +1,100 @@
1
+ #
2
+ class mysql(
3
+ $basedir = '',
4
+ $bind_address = '',
5
+ $client_package_ensure = '',
6
+ $client_package_name = '',
7
+ $config_file = '',
8
+ $config_template = '',
9
+ $datadir = '',
10
+ $default_engine = '',
11
+ $etc_root_password = '',
12
+ $log_error = '',
13
+ $manage_config_file = '',
14
+ $manage_service = '',
15
+ $max_allowed_packet = '',
16
+ $max_connections = '',
17
+ $old_root_password = '',
18
+ $package_ensure = '',
19
+ $php_package_name = '',
20
+ $pidfile = '',
21
+ $port = '',
22
+ $purge_conf_dir = '',
23
+ $restart = '',
24
+ $root_group = '',
25
+ $root_password = '',
26
+ $server_package_name = '',
27
+ $service_name = '',
28
+ $service_provider = '',
29
+ $socket = '',
30
+ $ssl = '',
31
+ $ssl_ca = '',
32
+ $ssl_cert = '',
33
+ $ssl_key = '',
34
+ $tmpdir = '',
35
+ $attempt_compatibility_mode = false,
36
+ ) {
37
+
38
+ if $attempt_compatibility_mode {
39
+ notify { "An attempt has been made below to automatically apply your custom
40
+ settings to mysql::server. Please verify this works in a safe test
41
+ environment.": }
42
+
43
+ $override_options = {
44
+ 'client' => {
45
+ 'port' => $port,
46
+ 'socket' => $socket
47
+ },
48
+ 'mysqld_safe' => {
49
+ 'log_error' => $log_error,
50
+ 'socket' => $socket,
51
+ },
52
+ 'mysqld' => {
53
+ 'basedir' => $basedir,
54
+ 'bind_address' => $bind_address,
55
+ 'datadir' => $datadir,
56
+ 'log_error' => $log_error,
57
+ 'max_allowed_packet' => $max_allowed_packet,
58
+ 'max_connections' => $max_connections,
59
+ 'pid_file' => $pidfile,
60
+ 'port' => $port,
61
+ 'socket' => $socket,
62
+ 'ssl-ca' => $ssl_ca,
63
+ 'ssl-cert' => $ssl_cert,
64
+ 'ssl-key' => $ssl_key,
65
+ 'tmpdir' => $tmpdir,
66
+ },
67
+ 'mysqldump' => {
68
+ 'max_allowed_packet' => $max_allowed_packet,
69
+ },
70
+ 'config_file' => $config_file,
71
+ 'etc_root_password' => $etc_root_password,
72
+ 'manage_config_file' => $manage_config_file,
73
+ 'old_root_password' => $old_root_password,
74
+ 'purge_conf_dir' => $purge_conf_dir,
75
+ 'restart' => $restart,
76
+ 'root_group' => $root_group,
77
+ 'root_password' => $root_password,
78
+ 'service_name' => $service_name,
79
+ 'ssl' => $ssl
80
+ }
81
+ $filtered_options = mysql_strip_hash($override_options)
82
+ validate_hash($filtered_options)
83
+ notify { $filtered_options: }
84
+ class { 'mysql::server':
85
+ override_options => $filtered_options,
86
+ }
87
+
88
+ } else {
89
+ fail("ERROR: This class has been deprecated and the functionality moved
90
+ into mysql::server. If you run mysql::server without correctly calling
91
+ mysql:: server with the new override_options hash syntax you will revert
92
+ your MySQL to the stock settings. Do not proceed without removing this
93
+ class and using mysql::server correctly.
94
+
95
+ If you are brave you may set attempt_compatibility_mode in this class which
96
+ attempts to automap the previous settings to appropriate calls to
97
+ mysql::server")
98
+ }
99
+
100
+ }
@@ -0,0 +1,230 @@
1
+ # Private class: See README.md.
2
+ class mysql::params {
3
+
4
+ $manage_config_file = true
5
+ $old_root_password = ''
6
+ $purge_conf_dir = false
7
+ $restart = false
8
+ $root_password = 'UNSET'
9
+ $server_package_ensure = 'present'
10
+ $server_service_manage = true
11
+ $server_service_enabled = true
12
+ # mysql::bindings
13
+ $bindings_enable = false
14
+ $java_package_ensure = 'present'
15
+ $java_package_provider = undef
16
+ $perl_package_ensure = 'present'
17
+ $perl_package_provider = undef
18
+ $php_package_ensure = 'present'
19
+ $php_package_provider = undef
20
+ $python_package_ensure = 'present'
21
+ $python_package_provider = undef
22
+ $ruby_package_ensure = 'present'
23
+ $ruby_package_provider = undef
24
+
25
+
26
+ case $::osfamily {
27
+ 'RedHat': {
28
+ if $::operatingsystem == 'Fedora' and (is_integer($::operatingsystemrelease) and $::operatingsystemrelease >= 19 or $::operatingsystemrelease == "Rawhide") {
29
+ $client_package_name = 'mariadb'
30
+ $server_package_name = 'mariadb-server'
31
+ } else {
32
+ $client_package_name = 'mysql'
33
+ $server_package_name = 'mysql-server'
34
+ }
35
+ $basedir = '/usr'
36
+ $config_file = '/etc/my.cnf'
37
+ $datadir = '/var/lib/mysql'
38
+ $log_error = '/var/log/mysqld.log'
39
+ $pidfile = '/var/run/mysqld/mysqld.pid'
40
+ $root_group = 'root'
41
+ $server_service_name = 'mysqld'
42
+ $socket = '/var/lib/mysql/mysql.sock'
43
+ $ssl_ca = '/etc/mysql/cacert.pem'
44
+ $ssl_cert = '/etc/mysql/server-cert.pem'
45
+ $ssl_key = '/etc/mysql/server-key.pem'
46
+ $tmpdir = '/tmp'
47
+ # mysql::bindings
48
+ $java_package_name = 'mysql-connector-java'
49
+ $perl_package_name = 'perl-DBD-MySQL'
50
+ $php_package_name = 'php-mysql'
51
+ $python_package_name = 'MySQL-python'
52
+ $ruby_package_name = 'ruby-mysql'
53
+ }
54
+
55
+ 'Suse': {
56
+ $client_package_name = $::operatingsystem ? {
57
+ /OpenSuSE/ => 'mysql-community-server-client',
58
+ /(SLES|SLED)/ => 'mysql-client',
59
+ }
60
+ $server_package_name = $::operatingsystem ? {
61
+ /OpenSuSE/ => 'mysql-community-server',
62
+ /(SLES|SLED)/ => 'mysql',
63
+ }
64
+ $basedir = '/usr'
65
+ $config_file = '/etc/my.cnf'
66
+ $datadir = '/var/lib/mysql'
67
+ $log_error = $::operatingsystem ? {
68
+ /OpenSuSE/ => '/var/log/mysql/mysqld.log',
69
+ /(SLES|SLED)/ => '/var/log/mysqld.log',
70
+ }
71
+ $pidfile = $::operatingsystem ? {
72
+ /OpenSuSE/ => '/var/run/mysql/mysqld.pid',
73
+ /(SLES|SLED)/ => '/var/lib/mysql/mysqld.pid',
74
+ }
75
+ $root_group = 'root'
76
+ $server_service_name = 'mysql'
77
+ $socket = $::operatingsystem ? {
78
+ /OpenSuSE/ => '/var/run/mysql/mysql.sock',
79
+ /(SLES|SLED)/ => '/var/lib/mysql/mysql.sock',
80
+ }
81
+ $ssl_ca = '/etc/mysql/cacert.pem'
82
+ $ssl_cert = '/etc/mysql/server-cert.pem'
83
+ $ssl_key = '/etc/mysql/server-key.pem'
84
+ $tmpdir = '/tmp'
85
+ # mysql::bindings
86
+ $java_package_name = 'mysql-connector-java'
87
+ $perl_package_name = 'perl-DBD-mysql'
88
+ $php_package_name = 'apache2-mod_php5'
89
+ $python_package_name = 'python-mysql'
90
+ $ruby_package_name = $::operatingsystem ? {
91
+ /OpenSuSE/ => 'rubygem-mysql',
92
+ /(SLES|SLED)/ => 'ruby-mysql',
93
+ }
94
+ }
95
+
96
+ 'Debian': {
97
+ $client_package_name = 'mysql-client'
98
+ $server_package_name = 'mysql-server'
99
+
100
+ $basedir = '/usr'
101
+ $config_file = '/etc/mysql/my.cnf'
102
+ $datadir = '/var/lib/mysql'
103
+ $log_error = '/var/log/mysql/error.log'
104
+ $pidfile = '/var/run/mysqld/mysqld.pid'
105
+ $root_group = 'root'
106
+ $server_service_name = 'mysql'
107
+ $socket = '/var/run/mysqld/mysqld.sock'
108
+ $ssl_ca = '/etc/mysql/cacert.pem'
109
+ $ssl_cert = '/etc/mysql/server-cert.pem'
110
+ $ssl_key = '/etc/mysql/server-key.pem'
111
+ $tmpdir = '/tmp'
112
+ # mysql::bindings
113
+ $java_package_name = 'libmysql-java'
114
+ $perl_package_name = 'libdbd-mysql-perl'
115
+ $php_package_name = 'php5-mysql'
116
+ $python_package_name = 'python-mysqldb'
117
+ $ruby_package_name = 'libmysql-ruby'
118
+ }
119
+
120
+ 'FreeBSD': {
121
+ $client_package_name = 'databases/mysql55-client'
122
+ $server_package_name = 'databases/mysql55-server'
123
+ $basedir = '/usr/local'
124
+ $config_file = '/var/db/mysql/my.cnf'
125
+ $datadir = '/var/db/mysql'
126
+ $log_error = "/var/db/mysql/${::hostname}.err"
127
+ $pidfile = '/var/db/mysql/mysql.pid'
128
+ $root_group = 'wheel'
129
+ $server_service_name = 'mysql-server'
130
+ $socket = '/tmp/mysql.sock'
131
+ $ssl_ca = undef
132
+ $ssl_cert = undef
133
+ $ssl_key = undef
134
+ $tmpdir = '/tmp'
135
+ # mysql::bindings
136
+ $java_package_name = 'databases/mysql-connector-java'
137
+ $perl_package_name = 'p5-DBD-mysql'
138
+ $php_package_name = 'php5-mysql'
139
+ $python_package_name = 'databases/py-MySQLdb'
140
+ $ruby_package_name = 'databases/ruby-mysql'
141
+ }
142
+
143
+ default: {
144
+ case $::operatingsystem {
145
+ 'Amazon': {
146
+ $client_package_name = 'mysql'
147
+ $server_package_name = 'mysql-server'
148
+ $basedir = '/usr'
149
+ $config_file = '/etc/my.cnf'
150
+ $datadir = '/var/lib/mysql'
151
+ $log_error = '/var/log/mysqld.log'
152
+ $pidfile = '/var/run/mysqld/mysqld.pid'
153
+ $root_group = 'root'
154
+ $server_service_name = 'mysqld'
155
+ $socket = '/var/lib/mysql/mysql.sock'
156
+ $ssl_ca = '/etc/mysql/cacert.pem'
157
+ $ssl_cert = '/etc/mysql/server-cert.pem'
158
+ $ssl_key = '/etc/mysql/server-key.pem'
159
+ $tmpdir = '/tmp'
160
+ # mysql::bindings
161
+ $java_package_name = 'mysql-connector-java'
162
+ $perl_package_name = 'perl-DBD-MySQL'
163
+ $php_package_name = 'php-mysql'
164
+ $python_package_name = 'MySQL-python'
165
+ $ruby_package_name = 'ruby-mysql'
166
+ }
167
+
168
+ default: {
169
+ fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, module ${module_name} only support osfamily RedHat, Debian, and FreeBSD, or operatingsystem Amazon")
170
+ }
171
+ }
172
+ }
173
+ }
174
+
175
+ case $::operatingsystem {
176
+ 'Ubuntu': {
177
+ $service_provider = upstart
178
+ }
179
+ default: {
180
+ $service_provider = undef
181
+ }
182
+ }
183
+
184
+ $default_options = {
185
+ 'client' => {
186
+ 'port' => '3306',
187
+ 'socket' => $mysql::params::socket,
188
+ },
189
+ 'mysqld_safe' => {
190
+ 'nice' => '0',
191
+ 'log_error' => $mysql::params::log_error,
192
+ 'socket' => $mysql::params::socket,
193
+ },
194
+ 'mysqld' => {
195
+ 'basedir' => $mysql::params::basedir,
196
+ 'bind_address' => '127.0.0.1',
197
+ 'datadir' => $mysql::params::datadir,
198
+ 'expire_logs_days' => '10',
199
+ 'key_buffer' => '16M',
200
+ 'log_error' => $mysql::params::log_error,
201
+ 'max_allowed_packet' => '16M',
202
+ 'max_binlog_size' => '100M',
203
+ 'max_connections' => '151',
204
+ 'myisam_recover' => 'BACKUP',
205
+ 'pid_file' => $mysql::params::pidfile,
206
+ 'port' => '3306',
207
+ 'query_cache_limit' => '1M',
208
+ 'query_cache_size' => '16M',
209
+ 'skip-external-locking' => true,
210
+ 'socket' => $mysql::params::socket,
211
+ 'ssl' => false,
212
+ 'ssl-ca' => $mysql::params::ssl_ca,
213
+ 'ssl-cert' => $mysql::params::ssl_cert,
214
+ 'ssl-key' => $mysql::params::ssl_key,
215
+ 'thread_cache_size' => '8',
216
+ 'thread_stack' => '256K',
217
+ 'tmpdir' => $mysql::params::tmpdir,
218
+ 'user' => 'mysql',
219
+ },
220
+ 'mysqldump' => {
221
+ 'max_allowed_packet' => '16M',
222
+ 'quick' => true,
223
+ 'quote-names' => true,
224
+ },
225
+ 'isamchk' => {
226
+ 'key_buffer' => '16M',
227
+ },
228
+ }
229
+
230
+ }
@@ -0,0 +1,22 @@
1
+ class mysql::server::account_security {
2
+ mysql_user {
3
+ [ "root@${::fqdn}",
4
+ 'root@127.0.0.1',
5
+ 'root@::1',
6
+ "@${::fqdn}",
7
+ '@localhost',
8
+ '@%']:
9
+ ensure => 'absent',
10
+ require => Anchor['mysql::server::end'],
11
+ }
12
+ if ($::fqdn != $::hostname) {
13
+ mysql_user { ["root@${::hostname}", "@${::hostname}"]:
14
+ ensure => 'absent',
15
+ require => Anchor['mysql::server::end'],
16
+ }
17
+ }
18
+ mysql_database { 'test':
19
+ ensure => 'absent',
20
+ require => Anchor['mysql::server::end'],
21
+ }
22
+ }
@@ -0,0 +1,56 @@
1
+ # See README.me for usage.
2
+ class mysql::server::backup (
3
+ $backupuser,
4
+ $backuppassword,
5
+ $backupdir,
6
+ $backupcompress = true,
7
+ $backuprotate = 30,
8
+ $delete_before_dump = false,
9
+ $backupdatabases = [],
10
+ $file_per_database = false,
11
+ $ensure = 'present',
12
+ $time = ['23', '5'],
13
+ ) {
14
+
15
+ mysql_user { "${backupuser}@localhost":
16
+ ensure => $ensure,
17
+ password_hash => mysql_password($backuppassword),
18
+ provider => 'mysql',
19
+ require => Class['mysql::server::config'],
20
+ }
21
+
22
+ mysql_grant { "${backupuser}@localhost/*.*":
23
+ ensure => present,
24
+ user => "${backupuser}@localhost",
25
+ table => '*.*',
26
+ privileges => [ 'SELECT', 'RELOAD', 'LOCK TABLES', 'SHOW VIEW' ],
27
+ require => Mysql_user["${backupuser}@localhost"],
28
+ }
29
+
30
+ cron { 'mysql-backup':
31
+ ensure => $ensure,
32
+ command => '/usr/local/sbin/mysqlbackup.sh',
33
+ user => 'root',
34
+ hour => $time[0],
35
+ minute => $time[1],
36
+ require => File['mysqlbackup.sh'],
37
+ }
38
+
39
+ file { 'mysqlbackup.sh':
40
+ ensure => $ensure,
41
+ path => '/usr/local/sbin/mysqlbackup.sh',
42
+ mode => '0700',
43
+ owner => 'root',
44
+ group => 'root',
45
+ content => template('mysql/mysqlbackup.sh.erb'),
46
+ }
47
+
48
+ file { 'mysqlbackupdir':
49
+ ensure => 'directory',
50
+ path => $backupdir,
51
+ mode => '0700',
52
+ owner => 'root',
53
+ group => 'root',
54
+ }
55
+
56
+ }
@@ -0,0 +1,31 @@
1
+ # See README.me for options.
2
+ class mysql::server::config {
3
+
4
+ $options = $mysql::server::options
5
+
6
+ File {
7
+ owner => 'root',
8
+ group => $mysql::server::root_group,
9
+ mode => '0400',
10
+ notify => Class['mysql::server::service'],
11
+ }
12
+
13
+ file { '/etc/mysql':
14
+ ensure => directory,
15
+ mode => '0755',
16
+ }
17
+
18
+ file { '/etc/mysql/conf.d':
19
+ ensure => directory,
20
+ mode => '0755',
21
+ recurse => $mysql::server::purge_conf_dir,
22
+ purge => $mysql::server::purge_conf_dir,
23
+ }
24
+
25
+ if $mysql::server::manage_config_file {
26
+ file { $mysql::server::config_file:
27
+ content => template('mysql/my.cnf.erb'),
28
+ mode => '0644',
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,9 @@
1
+ #
2
+ class mysql::server::install {
3
+
4
+ package { 'mysql-server':
5
+ ensure => $mysql::server::package_ensure,
6
+ name => $mysql::server::package_name,
7
+ }
8
+
9
+ }
@@ -0,0 +1,24 @@
1
+ #This is a helper class to add a monitoring user to the database
2
+ class mysql::server::monitor (
3
+ $mysql_monitor_username,
4
+ $mysql_monitor_password,
5
+ $mysql_monitor_hostname
6
+ ) {
7
+
8
+ Anchor['mysql::server::end'] -> Class['mysql::server::monitor']
9
+
10
+ mysql_user { "${mysql_monitor_username}@${mysql_monitor_hostname}":
11
+ ensure => present,
12
+ password_hash => mysql_password($mysql_monitor_password),
13
+ require => Class['mysql::server::service'],
14
+ }
15
+
16
+ mysql_grant { "${mysql_monitor_username}@${mysql_monitor_hostname}/*.*":
17
+ ensure => present,
18
+ user => "${mysql_monitor_username}@${mysql_monitor_hostname}",
19
+ table => '*.*',
20
+ privileges => [ 'PROCESS', 'SUPER' ],
21
+ require => Mysql_user["${mysql_monitor_username}@${mysql_monitor_hostname}"],
22
+ }
23
+
24
+ }
@@ -0,0 +1,9 @@
1
+ #
2
+ class mysql::server::mysqltuner($ensure='present') {
3
+ # mysql performance tester
4
+ file { '/usr/local/bin/mysqltuner':
5
+ ensure => $ensure,
6
+ mode => '0550',
7
+ source => 'puppet:///modules/mysql/mysqltuner.pl',
8
+ }
9
+ }
@@ -0,0 +1,8 @@
1
+ # Convenience class to call each of the three providers with the corresponding
2
+ # hashes provided in mysql::server.
3
+ # See README.md for details.
4
+ class mysql::server::providers {
5
+ create_resources('mysql_user', $mysql::server::users)
6
+ create_resources('mysql_grant', $mysql::server::grants)
7
+ create_resources('mysql_database', $mysql::server::databases)
8
+ }
@@ -0,0 +1,21 @@
1
+ #
2
+ class mysql::server::root_password {
3
+
4
+ $options = $mysql::server::options
5
+
6
+ # manage root password if it is set
7
+ if $mysql::server::root_password != 'UNSET' {
8
+ mysql_user { 'root@localhost':
9
+ ensure => present,
10
+ password_hash => mysql_password($mysql::server::root_password),
11
+ }
12
+
13
+ file { "${::root_home}/.my.cnf":
14
+ content => template('mysql/my.cnf.pass.erb'),
15
+ owner => 'root',
16
+ mode => '0600',
17
+ require => Mysql_user['root@localhost'],
18
+ }
19
+ }
20
+
21
+ }
@@ -0,0 +1,19 @@
1
+ #
2
+ class mysql::server::service {
3
+
4
+ if $mysql::server::real_service_enabled {
5
+ $service_ensure = 'running'
6
+ } else {
7
+ $service_ensure = 'stopped'
8
+ }
9
+
10
+ if $mysql::server::real_service_manage {
11
+ service { 'mysqld':
12
+ ensure => $service_ensure,
13
+ name => $mysql::server::service_name,
14
+ enable => $mysql::server::real_service_enabled,
15
+ provider => $mysql::server::service_provider,
16
+ }
17
+ }
18
+
19
+ }
@@ -0,0 +1,69 @@
1
+ # Class: mysql::server: See README.md for documentation.
2
+ class mysql::server (
3
+ $config_file = $mysql::params::config_file,
4
+ $manage_config_file = $mysql::params::manage_config_file,
5
+ $old_root_password = $mysql::params::old_root_password,
6
+ $override_options = {},
7
+ $package_ensure = $mysql::params::server_package_ensure,
8
+ $package_name = $mysql::params::server_package_name,
9
+ $purge_conf_dir = $mysql::params::purge_conf_dir,
10
+ $remove_default_accounts = false,
11
+ $restart = $mysql::params::restart,
12
+ $root_group = $mysql::params::root_group,
13
+ $root_password = $mysql::params::root_password,
14
+ $service_enabled = $mysql::params::server_service_enabled,
15
+ $service_manage = $mysql::params::server_service_manage,
16
+ $service_name = $mysql::params::server_service_name,
17
+ $service_provider = $mysql::params::server_service_provider,
18
+ $users = {},
19
+ $grants = {},
20
+ $databases = {},
21
+
22
+ # Deprecated parameters
23
+ $enabled = undef,
24
+ $manage_service = undef
25
+ ) inherits mysql::params {
26
+
27
+ # Deprecated parameters.
28
+ if $enabled {
29
+ crit('This parameter has been renamed to service_enabled.')
30
+ $real_service_enabled = $enabled
31
+ } else {
32
+ $real_service_enabled = $service_enabled
33
+ }
34
+ if $manage_service {
35
+ crit('This parameter has been renamed to service_manage.')
36
+ $real_service_manage = $manage_service
37
+ } else {
38
+ $real_service_manage = $service_manage
39
+ }
40
+
41
+ # Create a merged together set of options. Rightmost hashes win over left.
42
+ $options = mysql_deepmerge($mysql::params::default_options, $override_options)
43
+
44
+ Class['mysql::server::root_password'] -> Mysql::Db <| |>
45
+
46
+ include '::mysql::server::install'
47
+ include '::mysql::server::config'
48
+ include '::mysql::server::service'
49
+ include '::mysql::server::root_password'
50
+ include '::mysql::server::providers'
51
+
52
+ if $remove_default_accounts {
53
+ class { '::mysql::server::account_security':
54
+ require => Anchor['mysql::server::end'],
55
+ }
56
+ }
57
+
58
+ anchor { 'mysql::server::start': }
59
+ anchor { 'mysql::server::end': }
60
+
61
+ Anchor['mysql::server::start'] ->
62
+ Class['mysql::server::install'] ->
63
+ Class['mysql::server::config'] ->
64
+ Class['mysql::server::service'] ->
65
+ Class['mysql::server::root_password'] ->
66
+ Class['mysql::server::providers'] ->
67
+ Anchor['mysql::server::end']
68
+
69
+ }