elzar 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. data/.chef/knife.rb +3 -0
  2. data/.gitignore +1 -0
  3. data/.rvmrc +1 -0
  4. data/Gemfile +11 -0
  5. data/Gemfile.lock +96 -0
  6. data/README.md +42 -0
  7. data/Rakefile +1 -0
  8. data/Vagrantfile +16 -0
  9. data/cookbooks/.gitkeep +0 -0
  10. data/cookbooks/apt/README.md +122 -0
  11. data/cookbooks/apt/files/default/apt-cacher +9 -0
  12. data/cookbooks/apt/files/default/apt-cacher.conf +144 -0
  13. data/cookbooks/apt/files/default/apt-proxy-v2.conf +50 -0
  14. data/cookbooks/apt/metadata.rb +13 -0
  15. data/cookbooks/apt/providers/repository.rb +73 -0
  16. data/cookbooks/apt/recipes/cacher-client.rb +44 -0
  17. data/cookbooks/apt/recipes/cacher.rb +45 -0
  18. data/cookbooks/apt/recipes/default.rb +50 -0
  19. data/cookbooks/apt/resources/repository.rb +30 -0
  20. data/cookbooks/build-essential/README.md +24 -0
  21. data/cookbooks/build-essential/metadata.rb +10 -0
  22. data/cookbooks/build-essential/recipes/default.rb +45 -0
  23. data/cookbooks/database/README.md +403 -0
  24. data/cookbooks/database/libraries/provider_database_mysql.rb +97 -0
  25. data/cookbooks/database/libraries/provider_database_mysql_user.rb +76 -0
  26. data/cookbooks/database/libraries/provider_database_postgresql.rb +126 -0
  27. data/cookbooks/database/libraries/provider_database_postgresql_user.rb +78 -0
  28. data/cookbooks/database/libraries/provider_database_sql_server.rb +109 -0
  29. data/cookbooks/database/libraries/provider_database_sql_server_user.rb +106 -0
  30. data/cookbooks/database/libraries/resource_database.rb +111 -0
  31. data/cookbooks/database/libraries/resource_database_user.rb +90 -0
  32. data/cookbooks/database/libraries/resource_mysql_database.rb +34 -0
  33. data/cookbooks/database/libraries/resource_mysql_database_user.rb +34 -0
  34. data/cookbooks/database/libraries/resource_postgresql_database.rb +35 -0
  35. data/cookbooks/database/libraries/resource_postgresql_database_user.rb +35 -0
  36. data/cookbooks/database/libraries/resource_sql_server_database.rb +34 -0
  37. data/cookbooks/database/libraries/resource_sql_server_database_user.rb +34 -0
  38. data/cookbooks/database/metadata.rb +21 -0
  39. data/cookbooks/database/recipes/default.rb +20 -0
  40. data/cookbooks/database/recipes/ebs_backup.rb +89 -0
  41. data/cookbooks/database/recipes/ebs_volume.rb +196 -0
  42. data/cookbooks/database/recipes/master.rb +78 -0
  43. data/cookbooks/database/recipes/snapshot.rb +62 -0
  44. data/cookbooks/database/templates/default/app_grants.sql.erb +8 -0
  45. data/cookbooks/database/templates/default/aws_config.erb +3 -0
  46. data/cookbooks/database/templates/default/chef-solo-database-snapshot.cron.erb +10 -0
  47. data/cookbooks/database/templates/default/chef-solo-database-snapshot.json.erb +1 -0
  48. data/cookbooks/database/templates/default/chef-solo-database-snapshot.rb.erb +6 -0
  49. data/cookbooks/database/templates/default/ebs-backup-cron.erb +2 -0
  50. data/cookbooks/database/templates/default/ebs-db-backup.sh.erb +8 -0
  51. data/cookbooks/database/templates/default/ebs-db-restore.sh.erb +10 -0
  52. data/cookbooks/database/templates/default/s3cfg.erb +27 -0
  53. data/cookbooks/mysql/README.md +148 -0
  54. data/cookbooks/mysql/attributes/server.rb +68 -0
  55. data/cookbooks/mysql/libraries/database.rb +19 -0
  56. data/cookbooks/mysql/libraries/helpers.rb +33 -0
  57. data/cookbooks/mysql/metadata.rb +90 -0
  58. data/cookbooks/mysql/recipes/client.rb +51 -0
  59. data/cookbooks/mysql/recipes/default.rb +20 -0
  60. data/cookbooks/mysql/recipes/server.rb +133 -0
  61. data/cookbooks/mysql/recipes/server_ec2.rb +49 -0
  62. data/cookbooks/mysql/templates/default/debian.cnf.erb +12 -0
  63. data/cookbooks/mysql/templates/default/grants.sql.erb +15 -0
  64. data/cookbooks/mysql/templates/default/my.cnf.erb +176 -0
  65. data/cookbooks/mysql/templates/default/mysql-server.seed.erb +10 -0
  66. data/cookbooks/mysql/templates/default/port_mysql.erb +3 -0
  67. data/cookbooks/openssl/README.md +37 -0
  68. data/cookbooks/openssl/libraries/secure_password.rb +37 -0
  69. data/cookbooks/openssl/metadata.rb +8 -0
  70. data/cookbooks/openssl/recipes/default.rb +19 -0
  71. data/cookbooks/passenger_enterprise/README.rdoc +8 -0
  72. data/cookbooks/passenger_enterprise/attributes/default.rb +28 -0
  73. data/cookbooks/passenger_enterprise/cc.gemspec +36 -0
  74. data/cookbooks/passenger_enterprise/metadata.json +44 -0
  75. data/cookbooks/passenger_enterprise/metadata.rb +16 -0
  76. data/cookbooks/passenger_enterprise/recipes/apache2.rb +54 -0
  77. data/cookbooks/passenger_enterprise/recipes/default.rb +30 -0
  78. data/cookbooks/passenger_enterprise/recipes/nginx.rb +50 -0
  79. data/cookbooks/passenger_enterprise/templates/default/passenger.conf.erb +2 -0
  80. data/cookbooks/passenger_enterprise/templates/default/passenger.load.erb +1 -0
  81. data/cookbooks/passenger_enterprise/templates/default/passenger_nginx.conf.erb +2 -0
  82. data/cookbooks/ruby_enterprise/README.rdoc +55 -0
  83. data/cookbooks/ruby_enterprise/attributes/default.rb +33 -0
  84. data/cookbooks/ruby_enterprise/cc.gemspec +36 -0
  85. data/cookbooks/ruby_enterprise/definitions/ree_gem.rb +28 -0
  86. data/cookbooks/ruby_enterprise/metadata.json +45 -0
  87. data/cookbooks/ruby_enterprise/metadata.rb +13 -0
  88. data/cookbooks/ruby_enterprise/recipes/default.rb +67 -0
  89. data/data_bags/deploy/authorized_keys.json +9 -0
  90. data/dna.json +25 -0
  91. data/elzar.gemspec +22 -0
  92. data/lib/elzar.rb +21 -0
  93. data/lib/elzar/assistant.rb +77 -0
  94. data/lib/elzar/chef_dna.rb +48 -0
  95. data/lib/elzar/template.rb +24 -0
  96. data/lib/elzar/templates/Gemfile +11 -0
  97. data/lib/elzar/templates/Vagrantfile.erb +16 -0
  98. data/lib/elzar/templates/dna.json +25 -0
  99. data/lib/elzar/templates/solo.rb.erb +6 -0
  100. data/lib/elzar/version.rb +3 -0
  101. data/roles/enterprise_appstack.rb +4 -0
  102. data/roles/plumbing.rb +11 -0
  103. data/roles/postgres_database.rb +4 -0
  104. data/roles/ruby_appstack.rb +4 -0
  105. data/script/install_cookbook +6 -0
  106. data/script/new_cookbook +5 -0
  107. data/site-cookbooks/.gitkeep +0 -0
  108. data/site-cookbooks/curl/README.md +17 -0
  109. data/site-cookbooks/curl/metadata.rb +6 -0
  110. data/site-cookbooks/curl/recipes/default.rb +11 -0
  111. data/site-cookbooks/nginx/CHANGELOG.md +11 -0
  112. data/site-cookbooks/nginx/CONTRIBUTING +29 -0
  113. data/site-cookbooks/nginx/LICENSE +201 -0
  114. data/site-cookbooks/nginx/README.md +76 -0
  115. data/site-cookbooks/nginx/attributes/default.rb +65 -0
  116. data/site-cookbooks/nginx/definitions/nginx_site.rb +35 -0
  117. data/site-cookbooks/nginx/files/default/mime.types +73 -0
  118. data/site-cookbooks/nginx/metadata.rb +89 -0
  119. data/site-cookbooks/nginx/recipes/default.rb +57 -0
  120. data/site-cookbooks/nginx/recipes/source.rb +126 -0
  121. data/site-cookbooks/nginx/templates/default/default-site.erb +11 -0
  122. data/site-cookbooks/nginx/templates/default/nginx.conf.erb +42 -0
  123. data/site-cookbooks/nginx/templates/default/nginx.init.erb +91 -0
  124. data/site-cookbooks/nginx/templates/default/nxdissite.erb +29 -0
  125. data/site-cookbooks/nginx/templates/default/nxensite.erb +38 -0
  126. data/site-cookbooks/passenger/README.md +12 -0
  127. data/site-cookbooks/passenger/attributes/default.rb +3 -0
  128. data/site-cookbooks/passenger/metadata.rb +6 -0
  129. data/site-cookbooks/passenger/recipes/default.rb +39 -0
  130. data/site-cookbooks/passenger/templates/default/passenger_nginx.conf.erb +2 -0
  131. data/site-cookbooks/postgresql/README.md +150 -0
  132. data/site-cookbooks/postgresql/attributes/default.rb +72 -0
  133. data/site-cookbooks/postgresql/metadata.rb +21 -0
  134. data/site-cookbooks/postgresql/recipes/client.rb +40 -0
  135. data/site-cookbooks/postgresql/recipes/default.rb +20 -0
  136. data/site-cookbooks/postgresql/recipes/server.rb +74 -0
  137. data/site-cookbooks/postgresql/recipes/server_debian.rb +62 -0
  138. data/site-cookbooks/postgresql/recipes/server_redhat.rb +82 -0
  139. data/site-cookbooks/postgresql/templates/default/debian.postgresql.conf.erb +499 -0
  140. data/site-cookbooks/postgresql/templates/default/pg_hba.conf.erb +83 -0
  141. data/site-cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb +501 -0
  142. data/site-cookbooks/rails_app/README.md +15 -0
  143. data/site-cookbooks/rails_app/attributes/default.rb +2 -0
  144. data/site-cookbooks/rails_app/files/default/sudoers +26 -0
  145. data/site-cookbooks/rails_app/metadata.rb +6 -0
  146. data/site-cookbooks/rails_app/recipes/default.rb +143 -0
  147. data/site-cookbooks/rails_app/recipes/system_libraries.rb +12 -0
  148. data/site-cookbooks/rails_app/templates/default/pg_hba.conf.erb +84 -0
  149. data/site-cookbooks/rails_app/templates/default/rails_app_nginx.erb +10 -0
  150. data/site-cookbooks/ruby/README.md +12 -0
  151. data/site-cookbooks/ruby/attributes/default.rb +6 -0
  152. data/site-cookbooks/ruby/metadata.rb +6 -0
  153. data/site-cookbooks/ruby/recipes/default.rb +54 -0
  154. data/solo.rb +7 -0
  155. data/upgrade-chef.sh +8 -0
  156. metadata +272 -0
@@ -0,0 +1,51 @@
1
+ #
2
+ # Cookbook Name:: mysql
3
+ # Recipe:: client
4
+ #
5
+ # Copyright 2008-2011, Opscode, Inc.
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ ::Chef::Resource::Package.send(:include, Opscode::Mysql::Helpers)
21
+
22
+ package "mysql-client" do
23
+ package_name value_for_platform(
24
+ [ "centos", "redhat", "suse", "fedora", "scientific", "amazon"] => { "default" => "mysql" },
25
+ "default" => "mysql-client"
26
+ )
27
+ action :install
28
+ end
29
+
30
+ package "mysql-devel" do
31
+ package_name begin
32
+ if platform?(%w{ centos redhat suse fedora scientific amazon })
33
+ "mysql-devel"
34
+ elsif debian_before_squeeze? || ubuntu_before_lucid?
35
+ "libmysqlclient15-dev"
36
+ else
37
+ "libmysqlclient-dev"
38
+ end
39
+ end
40
+ action :install
41
+ end
42
+
43
+ if platform?(%w{ redhat centos fedora suse scientific amazon })
44
+ package 'ruby-mysql'
45
+ elsif platform?(%w{ debian ubuntu })
46
+ package "libmysql-ruby"
47
+ else
48
+ gem_package "mysql" do
49
+ action :install
50
+ end
51
+ end
@@ -0,0 +1,20 @@
1
+ #
2
+ # Cookbook Name:: mysql
3
+ # Recipe:: default
4
+ #
5
+ # Copyright 2008-2009, Opscode, Inc.
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ include_recipe "mysql::client"
@@ -0,0 +1,133 @@
1
+ #
2
+ # Cookbook Name:: mysql
3
+ # Recipe:: default
4
+ #
5
+ # Copyright 2008-2011, Opscode, Inc.
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ ::Chef::Recipe.send(:include, Opscode::OpenSSL::Password)
21
+
22
+ include_recipe "mysql::client"
23
+
24
+ # generate all passwords
25
+ node.set_unless['mysql']['server_debian_password'] = secure_password
26
+ node.set_unless['mysql']['server_root_password'] = secure_password
27
+ node.set_unless['mysql']['server_repl_password'] = secure_password
28
+
29
+ if platform?(%w{debian ubuntu})
30
+
31
+ directory "/var/cache/local/preseeding" do
32
+ owner "root"
33
+ group "root"
34
+ mode 0755
35
+ recursive true
36
+ end
37
+
38
+ execute "preseed mysql-server" do
39
+ command "debconf-set-selections /var/cache/local/preseeding/mysql-server.seed"
40
+ action :nothing
41
+ end
42
+
43
+ template "/var/cache/local/preseeding/mysql-server.seed" do
44
+ source "mysql-server.seed.erb"
45
+ owner "root"
46
+ group "root"
47
+ mode "0600"
48
+ notifies :run, resources(:execute => "preseed mysql-server"), :immediately
49
+ end
50
+
51
+ template "#{node['mysql']['conf_dir']}/debian.cnf" do
52
+ source "debian.cnf.erb"
53
+ owner "root"
54
+ group "root"
55
+ mode "0600"
56
+ end
57
+
58
+ end
59
+
60
+ package "mysql-server" do
61
+ action :install
62
+ end
63
+
64
+ service "mysql" do
65
+ service_name value_for_platform([ "centos", "redhat", "suse", "fedora", "scientific", "amazon" ] => {"default" => "mysqld"}, "default" => "mysql")
66
+ if (platform?("ubuntu") && node.platform_version.to_f >= 10.04)
67
+ restart_command "restart mysql"
68
+ stop_command "stop mysql"
69
+ start_command "start mysql"
70
+ end
71
+ supports :status => true, :restart => true, :reload => true
72
+ action :nothing
73
+ end
74
+
75
+ skip_federated = case node['platform']
76
+ when 'fedora', 'ubuntu', 'amazon'
77
+ true
78
+ when 'centos', 'redhat', 'scientific'
79
+ node['platform_version'].to_f < 6.0
80
+ else
81
+ false
82
+ end
83
+
84
+ template "#{node['mysql']['conf_dir']}/my.cnf" do
85
+ source "my.cnf.erb"
86
+ owner "root"
87
+ group "root"
88
+ mode "0644"
89
+ notifies :restart, resources(:service => "mysql"), :immediately
90
+ variables :skip_federated => skip_federated
91
+ end
92
+
93
+ unless Chef::Config[:solo]
94
+ ruby_block "save node data" do
95
+ block do
96
+ node.save
97
+ end
98
+ action :create
99
+ end
100
+ end
101
+
102
+ # set the root password on platforms
103
+ # that don't support pre-seeding
104
+ unless platform?(%w{debian ubuntu})
105
+
106
+ execute "assign-root-password" do
107
+ command "/usr/bin/mysqladmin -u root password \"#{node['mysql']['server_root_password']}\""
108
+ action :run
109
+ only_if "/usr/bin/mysql -u root -e 'show databases;'"
110
+ end
111
+
112
+ end
113
+
114
+ grants_path = "#{node['mysql']['conf_dir']}/mysql_grants.sql"
115
+
116
+ begin
117
+ t = resources("template[#{grants_path}]")
118
+ rescue
119
+ Chef::Log.info("Could not find previously defined grants.sql resource")
120
+ t = template grants_path do
121
+ source "grants.sql.erb"
122
+ owner "root"
123
+ group "root"
124
+ mode "0600"
125
+ action :create
126
+ end
127
+ end
128
+
129
+ execute "mysql-install-privileges" do
130
+ command "/usr/bin/mysql -u root #{node['mysql']['server_root_password'].empty? ? '' : '-p' }\"#{node['mysql']['server_root_password']}\" < #{grants_path}"
131
+ action :nothing
132
+ subscribes :run, resources("template[#{grants_path}]"), :immediately
133
+ end
@@ -0,0 +1,49 @@
1
+ #
2
+ # Cookbook Name:: mysql
3
+ # Recipe:: default
4
+ #
5
+ # Copyright 2008-2009, Opscode, Inc.
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+
21
+ if (node.attribute?('ec2') && ! FileTest.directory?(node['mysql']['ec2_path']))
22
+
23
+ service "mysql" do
24
+ action :stop
25
+ end
26
+
27
+ execute "install-mysql" do
28
+ command "mv #{node['mysql']['data_dir']} #{node['mysql']['ec2_path']}"
29
+ not_if do FileTest.directory?(node['mysql']['ec2_path']) end
30
+ end
31
+
32
+ directory node['mysql']['ec2_path'] do
33
+ owner "mysql"
34
+ group "mysql"
35
+ end
36
+
37
+ mount node['mysql']['data_dir'] do
38
+ device node['mysql']['ec2_path']
39
+ fstype "none"
40
+ options "bind,rw"
41
+ action :mount
42
+ end
43
+
44
+ service "mysql" do
45
+ action :start
46
+ end
47
+
48
+ end
49
+
@@ -0,0 +1,12 @@
1
+ [client]
2
+ host = localhost
3
+ user = debian-sys-maint
4
+ password = <%= node['mysql']['server_debian_password'] %>
5
+ socket = <%= node['mysql']['socket'] %>
6
+
7
+ [mysql_upgrade]
8
+ host = localhost
9
+ user = debian-sys-maint
10
+ password = <%= node['mysql']['server_debian_password'] %>
11
+ socket = <%= node['mysql']['socket'] %>
12
+ basedir = /usr
@@ -0,0 +1,15 @@
1
+ # Generated by Chef for <%= node['hostname'] %>.
2
+ # Local modifications will be overwritten.
3
+
4
+ <% case node['platform'] -%>
5
+ <% when "debian","ubuntu" -%>
6
+ GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<%= node[:mysql][:server_debian_password] %>' WITH GRANT OPTION;
7
+ <% end -%>
8
+ # Grant replication for a slave user.
9
+ GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' identified by '<%= node['mysql']['server_repl_password'] %>';
10
+
11
+ # Set the server root password. This should be preseeded by the package installation.
12
+ <% if node['mysql']['allow_remote_root'] -%>
13
+ GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '<%= node['mysql']['server_root_password'] %>' WITH GRANT OPTION;
14
+ <% end -%>
15
+ SET PASSWORD FOR 'root'@'localhost' = PASSWORD('<%= node['mysql']['server_root_password'] %>');
@@ -0,0 +1,176 @@
1
+ #
2
+ # Generated by Chef for <%= node['hostname'] %>
3
+ #
4
+ # Local modifications will be overwritten.
5
+ #
6
+ # The MySQL database server configuration file.
7
+ #
8
+ # You can copy this to one of:
9
+ # - "/etc/mysql/my.cnf" to set global options,
10
+ # - "~/.my.cnf" to set user-specific options.
11
+ #
12
+ # One can use all long options that the program supports.
13
+ # Run program with --help to get a list of available options and with
14
+ # --print-defaults to see which it would actually understand and use.
15
+ #
16
+ # For explanations see
17
+ # http://dev.mysql.com/doc/mysql/en/server-system-variables.html
18
+
19
+ # This will be passed to all mysql clients
20
+ # It has been reported that passwords should be enclosed with ticks/quotes
21
+ # escpecially if they contain "#" chars...
22
+ # Remember to edit /etc/mysql/debian.cnf when changing the socket location.
23
+ [client]
24
+ port = 3306
25
+ socket = <%= node['mysql']['socket'] %>
26
+
27
+ # Here is entries for some specific programs
28
+ # The following values assume you have at least 32M ram
29
+
30
+ # This was formally known as [safe_mysqld]. Both versions are currently parsed.
31
+ [mysqld_safe]
32
+ socket = <%= node['mysql']['socket'] %>
33
+ nice = 0
34
+
35
+ [mysqld]
36
+ #
37
+ # * Basic Settings
38
+ #
39
+
40
+ #
41
+ # * IMPORTANT
42
+ # If you make changes to these settings and your system uses apparmor, you may
43
+ # also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.
44
+ #
45
+
46
+ user = mysql
47
+ pid-file = <%= node['mysql']['pid_file'] %>
48
+ socket = <%= node['mysql']['socket'] %>
49
+ port = 3306
50
+ basedir = /usr
51
+ datadir = <%= node['mysql']['data_dir'] %>
52
+ tmpdir = /tmp
53
+ skip-external-locking
54
+ #
55
+ # Instead of skip-networking the default is now to listen only on
56
+ # localhost which is more compatible and is not less secure.
57
+ bind-address = <%= node['mysql']['bind_address'] %>
58
+ #
59
+ # * Fine Tuning
60
+ #
61
+ key_buffer = <%= node['mysql']['tunable']['key_buffer'] %>
62
+ max_allowed_packet = <%= node['mysql']['tunable']['max_allowed_packet'] %>
63
+ thread_stack = <%= node['mysql']['tunable']['thread_stack'] %>
64
+ thread_cache_size = <%= node['mysql']['tunable']['thread_cache_size'] %>
65
+ # This replaces the startup script and checks MyISAM tables if needed
66
+ # the first time they are touched
67
+ myisam-recover = BACKUP
68
+ #max_connections = 100
69
+ #table_cache = 64
70
+ #thread_concurrency = 10
71
+ max_connections = <%= node['mysql']['tunable']['max_connections'] %>
72
+ wait_timeout = <%= node['mysql']['tunable']['wait_timeout'] %>
73
+ net_read_timeout = <%= node['mysql']['tunable']['net_read_timeout'] %>
74
+ net_write_timeout = <%= node['mysql']['tunable']['net_write_timeout'] %>
75
+ back_log = <%= node['mysql']['tunable']['back_log'] %>
76
+ table_cache = <%= node['mysql']['tunable']['table_cache'] %>
77
+ max_heap_table_size = <%= node['mysql']['tunable']['max_heap_table_size'] %>
78
+
79
+ #
80
+ # * Query Cache Configuration
81
+ #
82
+ query_cache_limit = <%= node['mysql']['tunable']['query_cache_limit'] %>
83
+ query_cache_size = <%= node['mysql']['tunable']['query_cache_size'] %>
84
+ #
85
+ # * Logging and Replication
86
+ #
87
+ # Both location gets rotated by the cronjob.
88
+ # Be aware that this log type is a performance killer.
89
+ #log = /var/log/mysql/mysql.log
90
+ #
91
+ # Error logging goes to syslog. This is a Debian improvement :)
92
+ #
93
+ # Here you can see queries with especially long duration
94
+ log_slow_queries = <%= node['mysql']['tunable']['log_slow_queries'] %>
95
+ long_query_time = <%= node['mysql']['tunable']['long_query_time'] %>
96
+ log-queries-not-using-indexes
97
+ #
98
+ # The following can be used as easy to replay backup logs or for replication.
99
+ # note: if you are setting up a replication slave, see README.Debian about
100
+ # other settings you may need to change.
101
+ #server-id = 1
102
+ #log_bin = /var/log/mysql/mysql-bin.log
103
+ expire_logs_days = <%= node['mysql']['tunable']['expire_logs_days'] %>
104
+ max_binlog_size = <%= node['mysql']['tunable']['max_binlog_size'] %>
105
+ #binlog_do_db = include_database_name
106
+ #binlog_ignore_db = include_database_name
107
+ #
108
+ # * InnoDB
109
+ #
110
+ # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
111
+ # Read the manual for more InnoDB related options. There are many!
112
+ # You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
113
+ #skip-innodb
114
+ innodb_buffer_pool_size = <%= node['mysql']['tunable']['innodb_buffer_pool_size'] %>
115
+
116
+ <% if @skip_federated %>
117
+ #
118
+ # * Federated
119
+ #
120
+ # The FEDERATED storage engine is disabled since 5.0.67 by default in the .cnf files
121
+ # shipped with MySQL distributions (my-huge.cnf, my-medium.cnf, and so forth).
122
+ #
123
+ skip-federated
124
+ <% end %>
125
+ #
126
+ # * Security Features
127
+ #
128
+ # Read the manual, too, if you want chroot!
129
+ # chroot = /var/lib/mysql/
130
+ #
131
+ # For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
132
+ #
133
+ # ssl-ca=/etc/mysql/cacert.pem
134
+ # ssl-cert=/etc/mysql/server-cert.pem
135
+ # ssl-key=/etc/mysql/server-key.pem
136
+
137
+ [mysqldump]
138
+ quick
139
+ quote-names
140
+ max_allowed_packet = <%= node['mysql']['tunable']['max_allowed_packet'] %>
141
+
142
+ [mysql]
143
+ #no-auto-rehash # faster start of mysql but no tab completition
144
+
145
+ [isamchk]
146
+ key_buffer = <%= node['mysql']['tunable']['max_allowed_packet'] %>
147
+
148
+ #
149
+ # * NDB Cluster
150
+ #
151
+ # See /usr/share/doc/mysql-server-*/README.Debian for more information.
152
+ #
153
+ # The following configuration is read by the NDB Data Nodes (ndbd processes)
154
+ # not from the NDB Management Nodes (ndb_mgmd processes).
155
+ #
156
+ # [MYSQL_CLUSTER]
157
+ # ndb-connectstring=127.0.0.1
158
+
159
+ <% case node['platform'] -%>
160
+ <% when "centos", "redhat", "fedora", "suse", "scientific", "amazon"-%>
161
+ #
162
+ # * BerkeleyDB
163
+ #
164
+ # Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.
165
+ skip-bdb
166
+ # Default to using old password format for compatibility with mysql 3.x
167
+ # clients (those using the mysqlclient10 compatibility package).
168
+ old_passwords = <%= node['mysql']['old_passwords'] %>
169
+
170
+ <% else -%>
171
+ #
172
+ # * IMPORTANT: Additional settings that can override those from this file!
173
+ # The files must end with '.cnf', otherwise they'll be ignored.
174
+ #
175
+ !includedir /etc/mysql/conf.d/
176
+ <% end -%>