From 9568b7072dc947a025a1c9789168193695f34ac1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A2u=20Cao?= Date: Tue, 25 Jul 2023 16:38:55 +0200 Subject: [PATCH] Exclude specified nodes/VMs from image backups --- environments/production.json | 9 +++++++++ site-cookbooks/kosmos_kvm/attributes/default.rb | 2 ++ site-cookbooks/kosmos_kvm/recipes/backup.rb | 2 ++ 3 files changed, 13 insertions(+) diff --git a/environments/production.json b/environments/production.json index 538483e..c904a81 100644 --- a/environments/production.json +++ b/environments/production.json @@ -34,6 +34,15 @@ } } }, + "kosmos_kvm": { + "backup": { + "nodes_excluded": [ + "garage-2", "garage-3", "garage-4", + "postgres-5", + "rsk-mainnet-2", "rsk-testnet-3" + ] + } + }, "kosmos-mastodon": { "domain": "kosmos.social", "s3_endpoint": "http://localhost:3900", diff --git a/site-cookbooks/kosmos_kvm/attributes/default.rb b/site-cookbooks/kosmos_kvm/attributes/default.rb index 102a336..08bc201 100644 --- a/site-cookbooks/kosmos_kvm/attributes/default.rb +++ b/site-cookbooks/kosmos_kvm/attributes/default.rb @@ -8,3 +8,5 @@ node.default["kosmos_kvm"]["host"]["qemu_base_image"] = { # A systemd.timer OnCalendar config value node.default["kosmos_kvm"]["backup"]["schedule"] = "daily" +# Node/VM names excluded from backups +node.default["kosmos_kvm"]["backup"]["nodes_excluded"] = [] diff --git a/site-cookbooks/kosmos_kvm/recipes/backup.rb b/site-cookbooks/kosmos_kvm/recipes/backup.rb index d3bc822..e2da98a 100644 --- a/site-cookbooks/kosmos_kvm/recipes/backup.rb +++ b/site-cookbooks/kosmos_kvm/recipes/backup.rb @@ -54,6 +54,8 @@ end vm_domains = search(:node, "role:kvm_guest").map{|n| n["hostname"] } \ & `virsh list --name`.strip.chomp.split("\n") +vm_domains.reject! { |d| node["kosmos_kvm"]["backup"]["nodes_excluded"].include?(d) } + template "/root/backups/backup_all_vms.sh" do source "backup_all_vms.sh.erb" mode '0750'