diff --git a/site-cookbooks/backup/attributes/default.rb b/site-cookbooks/backup/attributes/default.rb index 81b334d..7df43a5 100644 --- a/site-cookbooks/backup/attributes/default.rb +++ b/site-cookbooks/backup/attributes/default.rb @@ -26,6 +26,11 @@ set_unless["backup"]["mysql"]["databases"] = [] set_unless["backup"]["mysql"]["username"] = "root" set_unless["backup"]["mysql"]["host"] = "localhost" +# PostgreSQL default settings +set_unless["backup"]["postgresql"]["databases"] = [] +set_unless["backup"]["postgresql"]["host"] = "localhost" +set_unless["backup"]["postgresql"]["port"] = 5432 + # Redis default settings set_unless["backup"]["redis"]["databases"] = [] set_unless["backup"]["redis"]["host"] = "localhost" diff --git a/site-cookbooks/backup/templates/default/backup.rb.erb b/site-cookbooks/backup/templates/default/backup.rb.erb index 836fbc3..d844c20 100644 --- a/site-cookbooks/backup/templates/default/backup.rb.erb +++ b/site-cookbooks/backup/templates/default/backup.rb.erb @@ -17,7 +17,11 @@ KosmosBackup.new(:default, 'default backup') do <%- end -%> <%- if node["backup"]["postgresql"] -%> - database PostgreSQL +<%- node["backup"]["postgresql"]["databases"].each do |db_name| -%> + database PostgreSQL, :"<%= db_name.to_sym %>" do |db| + db.name = "<%= db_name %>" + end +<%- end -%> <%- end -%> <%- if node["mongodb"] -%> diff --git a/site-cookbooks/backup/templates/default/config.rb.erb b/site-cookbooks/backup/templates/default/config.rb.erb index 11c7814..2e10774 100644 --- a/site-cookbooks/backup/templates/default/config.rb.erb +++ b/site-cookbooks/backup/templates/default/config.rb.erb @@ -45,15 +45,7 @@ Database::MySQL.defaults do |db| end <%- end -%> -<%- if node["backup"]["mysql"] -%> -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 -%> - +<%- if node["backup"]["redis"] -%> Database::Redis.defaults do |db| db.host = "<%= node["backup"]["redis"]["host"] %>" db.port = 6379 @@ -61,13 +53,14 @@ Database::Redis.defaults do |db| <%# db.password = "my_password"%> <%# db.socket = "/tmp/redis.sock"%> end +<%- end -%> <%- if node["backup"]["postgresql"] -%> 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.port = "<%= node["backup"]["postgresql"]["port"] %>" # db.socket = "/var/run/postgresql/.s.PGSQL.5432" # When dumping all databases, `skip_tables` and `only_tables` are ignored. db.skip_tables = [] diff --git a/site-cookbooks/kosmos-mastodon/recipes/default.rb b/site-cookbooks/kosmos-mastodon/recipes/default.rb index baeb5b3..f8ae051 100644 --- a/site-cookbooks/kosmos-mastodon/recipes/default.rb +++ b/site-cookbooks/kosmos-mastodon/recipes/default.rb @@ -180,10 +180,18 @@ application mastodon_path do end end +# +# Backup +# + unless node.chef_environment == "development" - # Backup the database to S3 node.override["backup"]["postgresql"]["host"] = "localhost" node.override["backup"]["postgresql"]["username"] = "postgres" node.override["backup"]["postgresql"]["password"] = node['postgresql']['password']['postgres'] + unless node["backup"]["postgresql"]["databases"].include? 'mastodon' + node.override["backup"]["postgresql"]["databases"] = + node["backup"]["postgresql"]["databases"].to_a << "mastodon" + end + include_recipe "backup" end