diff --git a/networker/manifests/init.pp b/networker/manifests/init.pp index 7d5f323..c9f214c 100644 --- a/networker/manifests/init.pp +++ b/networker/manifests/init.pp @@ -1,25 +1,19 @@ -class networker::client { - package { [ "lgtoclnt", "lgtoman" ]: - ensure => installed, - } +# Install common parts of Legato Networker +# +class networker::common { - file { [ "/nsr", "/nsr/res" ]: + require portmap::server + + file { [ "/nsr", "/nsr/res", ]: ensure => directory, mode => "0755", - owner => root, - group => root, - require => Package["lgtoclnt"], + owner => "root", + group => "root", } - file { "/nsr/res/servers": - ensure => present, - content => template("networker/servers.erb"), - mode => "0644", - owner => root, - group => root, - require => File["/nsr/res"], - notify => Service["networker"], + package { "lgtoman": + ensure => installed, } service { "networker": @@ -28,9 +22,81 @@ class networker::client { hasstatus => true, } - exec { "nsrports -S 7937-7940": - path => "/bin:/usr/bin:/sbin:/usr/sbin", - unless => "nsrports | egrep '^Service ports: 7937-7940[[:space:]]$'", + exec { "nsrports": + command => "nsrports -S 7937-7940", + path => "/bin:/usr/bin:/sbin:/usr/sbin", + unless => "nsrports | egrep '^Service ports: ${range}[[:space:]]$'", + require => Service["networker"], } } + +# Install Legato Networker client +# +# === Global variables +# +# $networker_servers: +# Array containing networker servers allowed to backup this host. +# +class networker::client { + + include networker::common + + package { "lgtoclnt": + ensure => installed, + before => File["/nsr"], + } + + file { "/nsr/res/servers": + ensure => present, + content => template("networker/servers.erb"), + mode => "0644", + owner => "root", + group => "root", + require => File["/nsr/res"], + notify => Service["networker"], + } + +} + + +# Install Legato Networker server +# +# === Parameters: +# +# $datadir: +# Datadirectory for indexes. +# $ports: +# Number of ports to reserve for networker use. Defaults to 8. +# See nsrports man page. +# +class networker::server($datadir="/nsr", $ports=8) inherits networker::common { + + $networker_server = [ $::homename, ] + include networker::client + + package { [ "lgtolicm", "lgtonode", "lgtoserv", ]: + ensure => installed, + before => Service["networker"], + } + + if $datadir != "/nsr" { + file { $datadir: + ensure => directory, + mode => "0755", + owner => "root", + group => "root", + } + File["/nsr"] { + ensure => link, + target => $datadir, + require => File[$datadir], + } + } + + Exec["nsrports"] { + command => inline_template('nsrports -S 7937-<%= 7936 + @ports.to_i %>'), + } + +} +