Make sure chef mysql configuration overrides defaults
[chef.git] / cookbooks / mysql / recipes / default.rb
1 #
2 # Cookbook Name:: mysql
3 # Recipe:: default
4 #
5 # Copyright 2013, OpenStreetMap Foundation
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 package "mysql-server"
21 package "mysql-client"
22
23 service "mysql" do
24   action [:enable, :start]
25   supports :status => true, :restart => true
26 end
27
28 file "/etc/mysql/conf.d/chef.cnf" do
29   action :delete
30   notifies :restart, "service[mysql]"
31 end
32
33 conf_file = if node[:lsb][:release].to_f >= 16.04
34               "/etc/mysql/mysql.conf.d/zzz-chef.cnf"
35             else
36               "/etc/mysql/conf.d/zzz-chef.cnf"
37             end
38
39 template conf_file do
40   source "my.cnf.erb"
41   owner "root"
42   group "root"
43   mode 0o644
44   notifies :restart, "service[mysql]"
45 end
46
47 package "libdbd-mysql-perl"
48 package "libcache-cache-perl"
49
50 %w(
51   commands connections files handler_read handler_tmp handler_transaction
52   handler_write innodb_bpool innodb_bpool_act innodb_history_list_length
53   innodb_insert_buf innodb_io innodb_io_pend innodb_log innodb_queries
54   innodb_read_views innodb_rows innodb_semaphores innodb_srv_master_thread
55   innodb_tnx max_mem mrr myisam_indexes network_traffic performance
56   qcache qcache_mem select_types slow sorts table_definitions table_locks
57   tmp_tables
58 ).each do |stat|
59   munin_plugin "mysql_#{stat}" do
60     target "mysql_"
61   end
62 end
63
64 %w(
65   bin_relay_log files_tables replication
66 ).each do |stat|
67   munin_plugin "mysql_#{stat}" do
68     action :delete
69   end
70 end