Skip to content

NCSA Common Puppet Profiles - configure NCSA Service backups

Notifications You must be signed in to change notification settings

ncsa/puppet-profile_backup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b013ee1 · Jun 11, 2024

History

14 Commits
Jun 13, 2023
Jun 13, 2023
Jun 11, 2024
Jun 11, 2024
May 2, 2024
Jun 11, 2024
Jul 11, 2023
Jan 20, 2023
Jan 20, 2023
Jul 13, 2023
Jan 20, 2023
Mar 8, 2024
Jan 20, 2023
Jan 20, 2023
Jun 11, 2024
Jan 20, 2023
Jan 20, 2023
Jan 20, 2023
Jan 20, 2023
Jan 20, 2023
Jun 11, 2024
Jul 11, 2023
May 2, 2024
Jun 11, 2024
Jan 20, 2023
Jan 20, 2023
Jun 11, 2024
Jan 27, 2023

Repository files navigation

profile_backup

pdk-validate yamllint

NCSA Common Puppet Profiles - configure NCSA Service backups

Table of Contents

  1. Description
  2. Setup - The basics of getting started with profile_backup
  3. Dependencies
  4. Reference

Description

This puppet profile customizes a host to install and configure ICI-ASD's service backups. See https://wiki.ncsa.illinois.edu/display/ICI/NCSA+Service+Backups

Setup

Backup Clients

Generally only clients that use a puppet profile class that needs backups should be configured for backups. So to setup a backup client in a puppet profile class for a service 1) include profile_backup::client and 2) add a backup job:

if ( lookup('profile_backup::client::enabled') ) {
  include ::profile_backup::client

  profile_backup::client::add_job { 'jobname':
    paths             => [ '/directory1', '/tmp/directory2.tar', ],
    prehook_commands  => [ 'tar cf /tmp/directory2.tar /directory2', ],
    posthook_commands => [ 'rm -f /tmp/directory2.tar', ],
  }
}

In instances where data is read from STDOUT when a command is ran (mysql dump), the class add_cmd_job.

profile_backup::client::add_cmd_job { "mysql_all_databases":
  backup_command  => "${backup_cmd} ${backup_cmd_options} --all-databases",
  filename => "mysql_all_databases.dump",

The backup clients will need the following parameters supplied:

profile_backup::client::encryption_passphrase: "CHANGE ME"  # PREFERABLY IN EYAML
profile_backup::client::server_user: "backup"
profile_backup::client::servers:
  - "backup1.local"
  - "backup2.local"
profile_backup::client::ssh_key_priv: "SSH PRIVATE KEY CONTENTS"  # PREFERABLY IN EYAML
profile_backup::client::ssh_key_pub:  "SSH PUBLIC KEY CONTENTS"   # PREFERABLY IN EYAML
profile_backup::client::ssh_key_type: "ssh-ed25519"

If for some reason you want to disable backups, the following parameter should be set:

profile_backup::client::enabled: false

Backup Servers

To setup a new backup server include profile_backup in a puppet profile file:

include ::profile_backup::server

The backup servers will need the following parameters supplied:

profile_backup::server::backup_directory: "/backups"
profile_backup::server::clients:  # ONLY FOR CLIENT HOSTS NOT EXPORTING CONFIGS
  "example client localhost":
    hostname: "localhost"
    ip: "127.0.0.1"
    ssh_key_pub: "AAAAB.EXAMPLE.SSH.PUBLIC.KEY"
    ssh_key_type: "ssh-rsa"
profile_backup::server::gid: "202"
profile_backup::server::groupname: "nobody"
profile_backup::server::uid: "9999"
profile_backup::server::username: "backup"

If multiple backup servers are setup, $profile_backup::server::backup_directory needs to be mounted from a remote or distributed filesystem. The $profile_backup::server::allow_client_requires parameter provides a way to add adhoc resource requirements that can be used to ensure the remote filesystem is mounted before attempting to write to it.

Dependencies

Reference

See: REFERENCE.md

About

NCSA Common Puppet Profiles - configure NCSA Service backups

Resources

Stars

Watchers

Forks

Packages

No packages published