diff --git a/site-cookbooks/backup/recipes/default.rb b/site-cookbooks/backup/recipes/default.rb index b69c344..8d34348 100644 --- a/site-cookbooks/backup/recipes/default.rb +++ b/site-cookbooks/backup/recipes/default.rb @@ -63,18 +63,22 @@ mysql_client 'default' do not_if { node["backup"]["mysql"]["databases"].empty? } end - include_recipe 'logrotate' - unless node["backup"]["mysql"]["databases"].empty? - # Install MySQL client (includes mysqldump) - mysql_client 'default' do - action :create - end - end - - logrotate_app 'backup' do - path '/var/log/backup.log' - frequency 'daily' - rotate 10 - create '640 root root' - end +# Write the credentials file to allow dumps without password for the root +# user (https://dev.mysql.com/doc/refman/5.7/en/option-files.html) +file "/root/.my.cnf" do + mode "600" + content lazy { <<-EOF +[client] +user=#{node["backup"]["mysql"]["username"]} +password=#{node["backup"]["mysql"]["password"]} + EOF + } + not_if { node["backup"]["mysql"]["password"].nil? } +end + +logrotate_app 'backup' do + path '/var/log/backup.log' + frequency 'daily' + rotate 10 + create '640 root root' end diff --git a/site-cookbooks/backup/templates/default/config.rb.erb b/site-cookbooks/backup/templates/default/config.rb.erb index 2e10774..dec61a8 100644 --- a/site-cookbooks/backup/templates/default/config.rb.erb +++ b/site-cookbooks/backup/templates/default/config.rb.erb @@ -40,7 +40,6 @@ end Database::MySQL.defaults do |db| db.host = "<%= node["backup"]["mysql"]["host"] %>" db.username = "<%= node["backup"]["mysql"]["username"] %>" - db.password = "<%= node["backup"]["mysql"]["password"] %>" db.additional_options = ['--quick', '--single-transaction'] end <%- end -%>