diff --git a/site-cookbooks/backup/recipes/default.rb b/site-cookbooks/backup/recipes/default.rb index fa51649..8d34348 100644 --- a/site-cookbooks/backup/recipes/default.rb +++ b/site-cookbooks/backup/recipes/default.rb @@ -45,30 +45,40 @@ template "#{backup_dir}/config.rb" do mail_from: "backups@kosmos.org" end -if node["backup"]["default_model"] - template "#{backup_dir}/models/default.rb" do - source "backup.rb.erb" - mode 0640 - end - - cron "default backup model" do - hour node['backup']['cron']['hour'] - minute node['backup']['cron']['minute'] - command "/usr/bin/env HOME=/home/user PATH=/usr/local/bin:/usr/local/ruby/bin:/usr/bin:/bin:$PATH /bin/sh -l -c 'backup perform -t default --root-path #{backup_dir} >> /var/log/backup.log 2>&1'" - 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 +template "#{backup_dir}/models/default.rb" do + source "backup.rb.erb" + mode 0640 +end + +cron "default backup model" do + hour node['backup']['cron']['hour'] + minute node['backup']['cron']['minute'] + command "/usr/bin/env HOME=/root /bin/sh -l -c '/usr/local/bin/backup perform -t default --root-path #{backup_dir} >> /var/log/backup.log 2>&1'" +end + +include_recipe 'logrotate' +# Install MySQL client (includes mysqldump) +mysql_client 'default' do + action :create + not_if { node["backup"]["mysql"]["databases"].empty? } +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 -%>