From 4e5d452aff93b4711b1c8122e22a94e2ceae11fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Greg=20Kar=C3=A9kinian?= Date: Fri, 7 Apr 2017 18:19:55 +0200 Subject: [PATCH] Add support for PostgreSQL backups --- site-cookbooks/backup/recipes/default.rb | 6 ++++ .../backup/templates/default/backup.rb.erb | 4 +++ .../backup/templates/default/config.rb.erb | 30 +++++++++---------- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/site-cookbooks/backup/recipes/default.rb b/site-cookbooks/backup/recipes/default.rb index f02f585..fe4a869 100644 --- a/site-cookbooks/backup/recipes/default.rb +++ b/site-cookbooks/backup/recipes/default.rb @@ -58,6 +58,12 @@ if node["backup"]["default_model"] end include_recipe 'logrotate' + if node["backup"]["mysql"] + # Install MySQL client (includes mysqldump) + mysql_client 'default' do + action :create + end + end logrotate_app 'backup' do path '/var/log/backup.log' diff --git a/site-cookbooks/backup/templates/default/backup.rb.erb b/site-cookbooks/backup/templates/default/backup.rb.erb index 23ec04f..836fbc3 100644 --- a/site-cookbooks/backup/templates/default/backup.rb.erb +++ b/site-cookbooks/backup/templates/default/backup.rb.erb @@ -16,6 +16,10 @@ KosmosBackup.new(:default, 'default backup') do <%- end -%> <%- end -%> +<%- if node["backup"]["postgresql"] -%> + database PostgreSQL +<%- end -%> + <%- if node["mongodb"] -%> <%- node["backup"]["mongodb"]["databases"].each do |db_name| -%> database MongoDB, :"<%= db_name.to_sym %>" do |db| diff --git a/site-cookbooks/backup/templates/default/config.rb.erb b/site-cookbooks/backup/templates/default/config.rb.erb index 736aa33..11c7814 100644 --- a/site-cookbooks/backup/templates/default/config.rb.erb +++ b/site-cookbooks/backup/templates/default/config.rb.erb @@ -45,11 +45,11 @@ Database::MySQL.defaults do |db| end <%- end -%> -<%- if node["backup"]["postgresql"] -%> +<%- if node["backup"]["mysql"] -%> Database::MySQL.defaults do |db| - db.host = "<%= node["backup"]["postgresql"]["host"] %>" - db.username = "<%= node["backup"]["postgresql"]["username"] %>" - db.password = "<%= node["backup"]["postgresql"]["password"] %>" + 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 -%> @@ -63,17 +63,17 @@ Database::Redis.defaults do |db| end <%- if node["backup"]["postgresql"] -%> - database PostgreSQL do |db| - db.username = "" - db.password = "<%= node['postgresql']['password']['postgres'] %>" - db.host = "localhost" - db.port = 5432 - db.socket = "/tmp/pg.sock" - # When dumping all databases, `skip_tables` and `only_tables` are ignored. - db.skip_tables = ['skip', 'these', 'tables'] - db.only_tables = ['only', 'these' 'tables'] - db.additional_options = [] - end +Database::PostgreSQL.defaults do |db| + db.username = "<%= node["backup"]["postgresql"]["username"] %>" + db.password = "<%= node["backup"]["postgresql"]["password"] %>" + db.host = "<%= node["backup"]["postgresql"]["host"] %>" + db.port = 5432 + # db.socket = "/var/run/postgresql/.s.PGSQL.5432" + # When dumping all databases, `skip_tables` and `only_tables` are ignored. + db.skip_tables = [] + db.only_tables = [] + db.additional_options = [] +end <% end -%> preconfigure 'KosmosBackup' do