Page MenuHomeSoftware Heritage

backups: implements a zfs snapshot backup
ClosedPublic

Authored by vsellier on Feb 8 2022, 11:14 AM.

Details

Summary

It only concerns the creation of local snapshots.
The sync to another server will come in another diff

The zfs configuration need to be updated to add a dedicated dataset for the postgresql wals

Related to T3889

Test Plan

dali:

diff origin/production/dali.internal.admin.swh.network current/dali.internal.admin.swh.network
*******************************************
+ File[/etc/sanoid/sanoid.conf] =>
   parameters =>
     "content": "# File managed with puppet (module profile::sanoid::backup)\n# A...
     "ensure": "present",
     "group": "root",
     "mode": "0644",
     "owner": "root"
*******************************************
+ File[/etc/sanoid] =>
   parameters =>
     "ensure": "directory",
     "group": "root",
     "mode": "0755",
     "owner": "root"
*******************************************
+ File[/usr/local/bin/start_pg_backup.sh] =>
   parameters =>
     "content": "#!/bin/bash\n#\n# File managed by puppet. All modifications will...
     "ensure": "present",
     "group": "root",
     "mode": "0744",
     "owner": "root"
*******************************************
+ File[/usr/local/bin/stop_pg_backup.sh] =>
   parameters =>
     "content": "#!/bin/bash\n#\n# File managed by puppet. All modifications will...
     "ensure": "present",
     "group": "root",
     "mode": "0744",
     "owner": "root"
*******************************************
+ Package[sanoid] =>
   parameters =>
     "ensure": "installed"
*******************************************
*** End octocatalog-diff on dali.internal.admin.swh.network

Diff Detail

Repository
rSPSITE puppet-swh-site
Branch
staging
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 26654
Build 41681: arc lint + arc unit

Event Timeline

vsellier created this revision.

Update to only keep the local snapshot section.
The sync deployment will be implemented in another diff.

Some scripts will be added to manage the postgresql backups
before this diff can be landed

  • add the postgresql backup management script
  • ensure the snapshot of the wal is done after the postgresql snapshot
vsellier retitled this revision from WIP backups: implements a zfs snapshot backup to backups: implements a zfs snapshot backup.Feb 8 2022, 2:11 PM
vsellier edited the summary of this revision. (Show Details)
vsellier edited the summary of this revision. (Show Details)
vsellier edited the summary of this revision. (Show Details)

lgtm

couple of remarks inline

site-modules/profile/manifests/sanoid/backup.pp
27

?

35
This revision is now accepted and ready to land.Feb 8 2022, 2:28 PM

thanks, I will fix that.

I'm also facing an issue with octocatalog-diff

Error: Could not run: cannot load such file -- puppet_x/stdlib

D, [2022-02-08T14:57:59.141158 #812022] DEBUG -- : PID=812025 completed in 2.588619729 seconds, 66963 bytes
#<Thread:0x0000559139f4be40 /usr/lib/ruby/2.7.0/open3.rb:288 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
	1: from /usr/lib/ruby/2.7.0/open3.rb:288:in `block (2 levels) in capture3'
/usr/lib/ruby/2.7.0/open3.rb:288:in `read': stream closed in another thread (IOError)
#<Thread:0x0000559139f4bf58 /usr/lib/ruby/2.7.0/open3.rb:287 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
	1: from /usr/lib/ruby/2.7.0/open3.rb:287:in `block (2 levels) in capture3'
/usr/lib/ruby/2.7.0/open3.rb:287:in `read': stream closed in another thread (IOError)
Traceback (most recent call last):
	17: from /usr/bin/octocatalog-diff:34:in `<main>'
	16: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/cli.rb:125:in `cli'
	15: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/cli.rb:151:in `run_octocatalog_diff'
	14: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/api/v1.rb:19:in `catalog_diff'
	13: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/api/v1/catalog-diff.rb:34:in `catalog_diff'
	12: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/util/catalogs.rb:29:in `catalogs'
	11: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/util/catalogs.rb:92:in `build_catalog_parallelizer'
	10: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/util/parallel.rb:94:in `run_tasks'
	 9: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/util/parallel.rb:114:in `run_tasks_parallel'
	 8: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/util/parallel.rb:114:in `each_with_index'
	 7: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/util/parallel.rb:114:in `each'
	 6: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/util/parallel.rb:117:in `block in run_tasks_parallel'
	 5: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/util/parallel.rb:117:in `fork'
	 4: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/util/parallel.rb:119:in `block (2 levels) in run_tasks_parallel'
	 3: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/util/parallel.rb:202:in `execute_task'
	 2: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/util/parallel.rb:39:in `validate'
	 1: from /usr/lib/ruby/vendor_ruby/octocatalog-diff/util/parallel.rb:39:in `call'
/usr/lib/ruby/vendor_ruby/octocatalog-diff/util/catalogs.rb:259:in `catalog_validator': Catalog failed: Warning: The 'ca' setting is deprecated and will be removed in Puppet 6. (OctocatalogDiff::Errors::CatalogError)
   (location: /usr/lib/ruby/vendor_ruby/puppet/defaults.rb:1340:in `block in initialize_default_settings!')
Warning: This method is deprecated, please use the stdlib validate_legacy function,
                    with Stdlib::Compat::String. There is further documentation for validate_legacy function in the README. at ["/tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/modules/postfix/manifests/init.pp", 63]:["/tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/role/manifests/swh_base.pp", 4]
   (location: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/modules/stdlib/lib/puppet/functions/deprecation.rb:36:in `deprecation')
Warning: ModuleLoader: module 'timezone' has unresolved dependencies - it will only see those that are resolved. Use 'puppet module list --tree' to see information about modules\\n   (file & line not available)
Warning: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/modules/bind/hiera.yaml: Use of 'hiera.yaml' version 4 is deprecated. It should be converted to version 5
   (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/modules/bind/hiera.yaml)
Warning: Defining "data_provider": "hiera" in metadata.json is deprecated.
   (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/modules/bind/metadata.json)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/base.pp, line: 131, column: 9)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/base.pp, line: 138, column: 9)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/ssh/server.pp, line: 65, column: 3)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/ssh/server.pp, line: 74, column: 3)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/ssh/server.pp, line: 81, column: 3)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/ssh/server.pp, line: 120, column: 5)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/ssh/server.pp, line: 120, column: 5)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/ssh/server.pp, line: 120, column: 5)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/ssh/server.pp, line: 120, column: 5)
Warning: You cannot collect exported resources without storeconfigs being set; the collection will be ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/ssh/server.pp, line: 128, column: 3)
Warning: You cannot collect exported resources without storeconfigs being set; the collection will be ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/ssh/server.pp, line: 129, column: 3)
Warning: ModuleLoader: module 'systemd' has unresolved dependencies - it will only see those that are resolved. Use 'puppet module list --tree' to see information about modules\\n   (file & line not available)
Warning: ModuleLoader: module 'resolv_conf' has unresolved dependencies - it will only see those that are resolved. Use 'puppet module list --tree' to see information about modules\\n   (file & line not available)
Warning: ModuleLoader: module 'puppet' has unresolved dependencies - it will only see those that are resolved. Use 'puppet module list --tree' to see information about modules\\n   (file & line not available)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/icinga2/agent.pp, line: 51, column: 3)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/icinga2/agent.pp, line: 56, column: 3)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/icinga2/agent.pp, line: 62, column: 3)
Warning: You cannot collect exported resources without storeconfigs being set; the export is ignored (file: /tmp/ocd-ipc-20220208-812022-wsy6rl/ocd-builddir-20220208-812025-1glah8f/environments/production/site-modules/profile/manifests/borg/client.pp, line: 44, column: 7)
Error: Could not run: cannot load such file -- puppet_x/stdlib

but puppet is working well on the vms...

It seems related with the stdlib plugin compatibility >= puppet 6.0

use a template instead of stdlib::to_toml function not compatible with puppet 5

vsellier marked 2 inline comments as done.
vsellier edited the test plan for this revision. (Show Details)

rebase