# Add client into BackupPC server # # === Parameters # # $name: # Client hostname # # $ensure: # If set to present client will be added and if absent # it will be removed from server. # # $operatingsystem: # Operatingsystem of client. Used to find correct client # configuration. Defaults to "default". # define backuppc::manualclient($ensure = "present", $operatingsystem = "default") { @@file { "/etc/BackupPC/pc/${name}.pl": ensure => "${ensure}", source => [ "puppet:///files/backuppc/${fqdn}.pl", "puppet:///files/backuppc/${operatingsystem}.pl", "puppet:///files/backuppc/default.pl", "puppet:///backuppc/default.pl", ], mode => 0640, owner => root, group => backuppc, tag => "backuppc", require => File["/etc/BackupPC/pc"], notify => Exec["generate-backuppc-hosts"], } if $backuppc_sshkey { ssh_authorized_key { "backuppc": ensure => present, key => "${backuppc_sshkey}", type => "ssh-rsa", user => root, target => "/root/.ssh/authorized_keys", tag => "backuppc", } } } # Install host into BackupPC server as client. # class backuppc::client { backuppc::manualclient { "${fqdn}": ensure => present, operatingsystem => "${operatingsystem}", } } # Install BackupPC server and add defined clients. # class backuppc::server { package { "BackupPC": ensure => installed, } file { [ "/export/backuppc", "/export/backuppc/cpool", "/export/backuppc/pc", "/export/backuppc/pool", "/export/backuppc/trash", ]: ensure => directory, mode => 0750, owner => backuppc, group => root, require => Package["BackupPC"], } file { "/srv/backuppc": ensure => "/export/backuppc", require => File["/export/backuppc"], } file { "/var/lib/BackupPC": ensure => "/srv/backuppc", force => true, require => File["/srv/backuppc"], } file { "/etc/BackupPC/config.pl": ensure => present, source => "puppet:///files/backuppc/config.pl", mode => 0640, owner => root, group => backuppc, require => Package["BackupPC"], notify => Service["backuppc"], } file { "/etc/BackupPC/hosts.in": ensure => present, source => [ "puppet:///files/backuppc/hosts.in", "puppet:///backuppc/hosts.in", ], mode => 0644, owner => root, group => backuppc, require => Package["BackupPC"], notify => Exec["generate-backuppc-hosts"], } file { "/etc/BackupPC/pc": ensure => directory, purge => true, mode => 0750, owner => root, group => backuppc, require => Package["BackupPC"], } exec { "generate-backuppc-hosts": command => '(cat /etc/BackupPC/hosts.in ; find /etc/BackupPC/pc/ -name \*.pl -exec basename {} .pl \; | sed -e "s/$/ 0 adm/") > /etc/BackupPC/hosts', path => "/bin:/usr/bin:/sbin:/usr/sbin", refreshonly => true, require => File["/etc/BackupPC/hosts.in"], notify => Service["backuppc"], } File <<| tag == "backuppc" |>> service { "backuppc": ensure => running, enable => true, require => Package["BackupPC"], } }