Add packagekit module.

This module supports automatic upgrades on RHEL/Centos slaves.
It works by installing PackageKit-cron and updating the config
file to enable automatic updates.

PackageKit-cron runs once a day via cron.

Fixes LP Bug #1180948.

Change-Id: I901ebf5f48fabee9456333ade0c141beacac62e6
Reviewed-on: https://review.openstack.org/29422
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
This commit is contained in:
Dan Prince 2013-05-16 15:51:31 -04:00 committed by Jenkins
commit 0bdff36d8b
4 changed files with 112 additions and 0 deletions

41
manifests/cron.pp Normal file
View File

@ -0,0 +1,41 @@
# Copyright 2013 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Class: packagekit::cron
#
class packagekit::cron(
$package_ensure = present,
$enabled = 'yes',
$check_only = 'no',
$mailto = false,
$system_name = false
) inherits packagekit {
include packagekit::params
package { $::packagekit::params::cron_package:
ensure => $package_ensure,
}
file { $::packagekit::params::cron_config_file:
ensure => present,
content => template("${module_name}/packagekit-background.erb"),
mode => '0644',
group => 'root',
owner => 'root',
replace => true,
require => Package[$::packagekit::params::cron_package],
}
}

27
manifests/init.pp Normal file
View File

@ -0,0 +1,27 @@
# Copyright 2013 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Class: packagekit
#
class packagekit(
$package_ensure = present
) {
include packagekit::params
package { $::packagekit::params::package:
ensure => $package_ensure,
}
}

27
manifests/params.pp Normal file
View File

@ -0,0 +1,27 @@
# Copyright 2013 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Class: packagekit::params
class packagekit::params {
case $::osfamily {
'RedHat': {
$package = 'PackageKit'
$cron_package = 'PackageKit-cron'
$cron_config_file = '/etc/sysconfig/packagekit-background'
}
default: {
fail("Unsupported osfamily: ${::osfamily} The 'packagekit' module only supports osfamily RedHat.")
}
}
}

View File

@ -0,0 +1,17 @@
# should we attempt to do this? (valid: yes|no)
ENABLED=<%= enabled %>
# don't install, just check (valid: yes|no)
CHECK_ONLY=<%= check_only %>
# if MAILTO is set, the mail command is used to deliver PackageKit output
# by default MAILTO is unset, so crond mails the output by itself
<% if mailto then %>
MAILTO=<%= mailto %>
<% end %>
# you may set SYSTEMNAME if you want your PackageKit emails tagged differently
# default is output of hostname command
<% if system_name then %>
SYSTEM_NAME=<%= system_name %>
<% end %>