The netbackup module aims to automate the Netbackup Installation by leveraging the installation methods provided by the vendor. However, this does not exclude the possibility of an installation method where package managers provide the neccessay rpms/debs/pkgs, yet that feature is still to be implemented.
Everything that is affected by the Interactive Netbackup Installation (creates /usr/openv and populates with the right content)
netbackup requires:
- puppetlabs-stdlib (>= 4.7.0)
- saz/limits (>= 2.1.0)
- thias/sysctl (>= 1.0.0)
- spiette/selinux (>= 0.5.4)
The netbackup module provides the following classes of interest
netbackup::client
- used for client installation and managementnetbackup::server::prepare
- used for master/media server preparation. Applies best practices for tuning such as changing sysctl and ulimit parameters.netbackup::server::tune
- applying values to the "touch files" used in netbackup for buffer settings etc, reasonable values set by default
Installs the client as neccessary on UNIX/Linux hosts, unfortunately using quite ugly expect script.
The netbackup::client
class is used for management of NetBackup
client. If no NetBackup client is present, it will try to run the NetBackup
installer located at installer
(should preferably be an NFS mount).
installer
- full path to the install binary provided from NetBackup DVDversion
- run install unless a client of this version is already installedmasterserver
- which masterserver should be entered upon installation of clientmediaservers
- mediaservers which has access to a clientservice_enabled
- start netbackup, true or false?excludes
- array of excludes to put in exclude list
Sample definition:
class { 'netbackup::client':
installer => '/path/to_nfs_share/NetBackup_7.6.0.1_CLIENTS2/install',
version => '7.7.2',
service_enabled => true,
masterserver => 'netbackup.xyz.com',
mediaservers => ['mediasrv1.xyz.com', 'mediasrv2.xyz.com'],
excludes => ['/tmp', '/other/excluded/path'],
}
The same configuration using Hiera,
---
netbackup::client::version: '7.7.2'
netbackup::client::service_enabled: true
netbackup::client::masterserver: 'netbackup.xyz.com'
netbackup::client::mediaservers:
- 'mediasrv1.xyz.com'
- 'mediasrv2.xyz.com'
netbackup::client::excludes:
- '/tmp'
- '/other/excluded/path'
Only handles preparation for NetBackup Master/media installation for now, see netbackup::server::prepare
.
class { 'netbackup::server::prepare': }
netbackup_client_name
- returns the client name from/usr/openv/netbackup/bin/nbgetconfig
netbackup_serverlist
- returns a list of servers retreived from/usr/openv/netbackup/bin/nbgetconfig
netbackup_version
- returns a string containing version information found in/usr/openv/netbackup/bin/version
,nil
if the file is not found or it does not contain a version string
The installer must be present (and reachable) on the Puppet Client. For most of the cases, The Netbackup Installation folder is Shared trhough NFS and mounted on the Nodes (May also leverage on autofs to automount that shared NFS).
Only tested on Linux (RHEL/CentOS/Ubuntu) for now.
I happily accept bug reports and pull requests via github,
https://github.com/andskli/puppet-netbackup
- Fork it
- Create a feature branch
- Write a failing test
- Write the code to make that test pass
- Refactor the code
- Submit a pull request
- Server installation of master/media
- Tuning/parameterizing of master/media
- Policy creation/modification via puppet?
- Server facts
- Client facts
- Client upgrades
- ??
The module is written and being mainly maintained by: