diff --git a/NEWS b/NEWS index 43e523d25d9426a40a032b74f191642b42663122..21b0136c845f00534184dd4d3008fb70c41f845b 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,8 @@ unreleased (207x-xx-xx) + [out_of_date] Add some parameters to the interface to make it easier + to point at different out-of-date servers. [adamhl] + [ssh] Change interface parameter. The parameter base::ssh::extra_gssapi_only_users has been renamed to base::ssh::extra_skip_duo_users to more accurately reflect what this diff --git a/manifests/out_of_date/client.pp b/manifests/out_of_date/client.pp index 4d9917af034e7bca22fc47dc32f891011c664908..cfbbedbbfdac15627fed3add96ac59152b559781 100644 --- a/manifests/out_of_date/client.pp +++ b/manifests/out_of_date/client.pp @@ -1,38 +1,59 @@ # Set up the out_of_date client, which reports package status to the server. -class base::out_of_date::client { +# $platform: should be one 'production' or 'development'. + +class base::out_of_date::client ( + $ensure = 'present', + $platform = 'production', + $ood_server_override = undef, +){ + if ($ensure == 'present') { + # PRESENT + + # Determine the server to use. + if ($ood_server_override) { + $ood_server = $ood_server_override + } else { + case $platform { + 'production': { $ood_server = 'frankoz1.stanford.edu' } + 'development': { $ood_server = 'frankoz1.stanford.edu' } + default: { fail("unrecognized platform") } + } + } + package { 'stanford-outofdate-client': ensure => installed, } file { - '/etc/out-of-date': - ensure => directory, - owner => root, - group => root; - '/etc/out-of-date/client.conf': - source => 'puppet:///modules/base/out-of-date/etc/out-of-date/client.conf', - require => Package['stanford-outofdate-client']; + '/etc/out-of-date': + ensure => directory, + owner => root, + group => root; + '/etc/out-of-date/client.conf': + content => template('base/out_of_date/etc/out-of-date/client.conf.erb'), + require => Package['stanford-outofdate-client']; } - if $::lsbdistcodename == 'lenny' { - file { '/etc/cron.hourly/out-of-date': ensure => absent } - } else { - file { '/etc/cron.hourly/out-of-date': - source => 'puppet:///modules/base/out-of-date/etc/cron.hourly/out-of-date'; - } + file { '/etc/cron.hourly/out-of-date': + source => 'puppet:///modules/base/out-of-date/etc/cron.hourly/out-of-date', } -} + } else { + # ABSENT -# disable ood-client by removing its cron job. -class base::out_of_date::client::disabled inherits base::out_of_date::client { - File['/etc/cron.hourly/out-of-date'] { - ensure => absent + package { 'stanford-outofdate-client': + ensure => absent, } -} -class base::out_of_date::client::dev inherits base::out_of_date::client { - File['/etc/out-of-date/client.conf'] { - source => 'puppet:///modules/base/out-of-date/etc/out-of-date/client-dev.conf' + file { '/etc/cron.hourly/out-of-date': + ensure => absent + } + + file { + '/etc/out-of-date': + ensure => absent; + '/etc/out-of-date/client.conf': + ensure => absent; } + } } diff --git a/manifests/out_of_date/client/dev.pp b/manifests/out_of_date/client/dev.pp new file mode 100644 index 0000000000000000000000000000000000000000..ee1c6704d00ba3791ed261567465016d83a03bf9 --- /dev/null +++ b/manifests/out_of_date/client/dev.pp @@ -0,0 +1,10 @@ +# DEPRECATED! +# +# Use instead base::out_of_date::client with the parameter 'platform' set +# to 'development'. + +class base::out_of_date::client::dev { + class { 'base::out_of_date::client': + platform => 'development', + } +} diff --git a/manifests/out_of_date/client/disabled.pp b/manifests/out_of_date/client/disabled.pp new file mode 100644 index 0000000000000000000000000000000000000000..13263235c736057fee7a76c94ed073eef15546ce --- /dev/null +++ b/manifests/out_of_date/client/disabled.pp @@ -0,0 +1,16 @@ +# disable ood-client by removing its cron job. + +# DEPRECATED! +# +# Use instead base::out_of_date::client with the parameter 'ensure' set to +# absent. + +class base::out_of_date::client::disabled { + # File['/etc/cron.hourly/out-of-date'] { + # ensure => absent + # } + + class { 'base::out_of_date::client': + ensure => absent, + } +} diff --git a/files/out-of-date/etc/out-of-date/client.conf b/templates/out_of_date/etc/out-of-date/client.conf.erb similarity index 72% rename from files/out-of-date/etc/out-of-date/client.conf rename to templates/out_of_date/etc/out-of-date/client.conf.erb index b39e5abc3cdcc3453cb9f2600ced33024321ed24..faba7f3981f26d9ad1278d900a13ffe58cc344cc 100644 --- a/files/out-of-date/etc/out-of-date/client.conf +++ b/templates/out_of_date/etc/out-of-date/client.conf.erb @@ -1,11 +1,13 @@ -# Out-of-date Package Management +############################################################################## +### Out-Of-Date Package Management +############################################################################## # Upper bound of the random number generator; default is 12, you probably # won't want to change this too often. $RANDOM_HOURS = 12; # What server is collecting this information? -$COLLECT_SERVER = 'frankoz2.stanford.edu'; +$COLLECT_SERVER = '<%= @ood_server %>'; # Should we download and locally cache packages to-be-installed, if possible? $CACHE_PACKAGES = 0;