Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
- Puppet >= 7.0.0 < 9.0.0
- , , , , , , , , , ,
Tasks:
- reboot
- last_boot_time
Plans:
- reboot
Start using this module
Add this module to your Puppetfile:
mod 'puppetlabs-reboot', '5.0.0'
Learn more about managing modules with a PuppetfileDocumentation
reboot
Table of Contents
- Overview
- Module Description - What the reboot module does and why it is useful
- Setup - The basics of getting started with reboot
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Overview
This module adds a type, and both Windows and generic POSIX providers, for managing target reboots.
Module Description
Some packages require a reboot of the target to complete their installation. Until that reboot is completed, the package might not be fully functional, and other installs might fail. This module provides a resource type to let Puppet perform that reboot, and providers to support Windows and POSIX systems. HP-UX is not supported.
By default, this module only reboots a target in response to another resource being applied --- e.g., after a package install. On Windows targets, you can also have Puppet check for pending reboots and complete them before applying the next resource in the catalog, by specifying when => pending
.
Setup
Setup Requirements
On Windows targets, the 'shutdown.exe' command must be in the PATH
.
On Windows 2003 (non-R2) x64 targets, KB942589 must be installed.
Beginning with reboot
The reboot module should work right out of the box. To test it, install a package (in this case 'SomePackage') and set up the module to reboot as follows:
package { 'SomePackage':
ensure => installed,
source => '\\server\share\some_installer.exe',
install_options => ['/Passive', '/NoRestart'],
}
reboot { 'after':
subscribe => Package['SomePackage'],
}
Usage
Complete any pending reboots before installing a package
reboot { 'before':
when => pending,
}
package { 'SomePackage':
ensure => installed,
source => '\\server\share\some_installer.exe',
install_options => ['/Passive', '/NoRestart'],
require => Reboot['before'],
}
Install multiple packages before rebooting
By default, when this module triggers a reboot, it skips any resources in the catalog that have not yet been applied. To apply the entire catalog before rebooting, specify apply => finished
. For example, if you have several packages that all require reboots, but will not block each other:
package { 'Microsoft .NET Framework 4.5':
ensure => installed,
...
notify => Reboot['after_run'],
}
package { 'Microsoft Windows SDK for Windows 7 (7.0)':
ensure => installed,
...
notify => Reboot['after_run'],
}
reboot { 'after_run':
apply => finished,
}
Reboot when certain conditions are met
This usage applies to Windows only.
When using when => pending
, use onlyif
or unless
to specify the reasons for which to reboot.
reboot { 'reboot on file renames':
when => 'pending',
onlyif => 'pending_file_rename_operations'
}
The possible reasons for rebooting are:
- reboot_required: A reboot has manually been requested through the provider.
- component_based_servicing: A new component has been installed.
- windows_auto_update: An automatic update requested a reboot.
- pending_file_rename_operations: There are files that need to be renamed at the next reboot.
- package_installer: A software update requested a reboot.
- package_installer_syswow64: A software update requested a reboot.
- pending_computer_rename: The computer needs to be renamed.
- pending_dsc_reboot: DSC has requested a reboot.
- pending_ccm_reboot: CCM has requested a reboot.
- pending_domain_join: System has joined domain and is pending a reboot.
Reference
Type: reboot
The main type of the module, responsible for all its functionality.
Providers
windows
: Default for :operatingsystem => :windowslinux
: Deprecated. Useposix
instead.posix
: Default for :feature => :posix
Features
manages_reboot_pending
: Detects whether a reboot is pending due to a prior change. If so, reboot the target. (Available with thewindows
provider.)
Parameters
apply
Optional. Specifies when to apply the reboot. If set to 'immediately', the provider stops applying additional resources and performs the reboot as soon as Puppet finishes syncing. If set to 'finished', it continues applying resources and then performs the reboot at the end of the run. Valid options: 'immediately' and 'finished'. Default value: 'immediately'.
Note: With the default setting of 'immediately', resources further down in the catalog are skipped and recorded as such. (In Puppet versions prior to 3.3.0, they're left out of the report entirely.) The next time Puppet runs, it processes the skipped resources normally, and they might trigger additional reboots.
message
Optional. Provides a message to log when the reboot is performed. Valid options: a string. Default value: undefined.
name
Required. Sets the name of the reboot resource. Valid options: a string.
timeout
Optional. Sets the number of seconds to wait after the Puppet run completes for the reboot to happen. If the timeout is exceeded, the provider cancels the reboot. Valid options: any positive integer. Default value: '60'.
Note: POSIX systems (with the exception of Solaris) only support specifying the timeout as minutes. As such, the value of timeout
must be a multiple of 60. Other values will be rounded up to the nearest minute and a warning will be issued.
when
Optional. Specifies how reboots are triggered. If set to 'refreshed', the provider only reboots the target in response to a refresh event from another resource, e.g., installing a package. If set to 'pending', Puppet checks for signs of any pending reboots and completes them before applying the next resource in the catalog. Valid options: 'refreshed' and 'pending'. Default value: 'refreshed'.
Note: For when => pending
reboots, Puppet can normally detect a pending reboot based on some specific system conditions (such as the existence of the PendingFileRenameOperations registry key). However, if those conditions aren't resolved after the target reboots, Puppet triggers another reboot. This can lead to a reboot loop.
onlyif
Optional. Applies a pending reboot only for the specified reasons. This can take a single reason or an array of reasons.
See the Reboot when certain conditions are met section for reasons why you might reboot.
unless
Optional. Ignores the specified reasons when checking for a pending reboot. This can take a single reason or an array of reasons.
See the Reboot when certain conditions are met section for reasons why you might reboot.
Plan: reboot
This plan is intended to be used as part of other plans and allows Bolt to wait for a server to reboot before continuing. It requires Bolt 1.0+ and/or PE 2019.0+.
NOTE: The nodes
parameters is deprecated in Bolt 2.0, and has been updated here to targets
.
This breaks plans or workflows that explicitly call the nodes
parameter, however this module is
still compatible with Bolt 1.x specifying the targets
parameter instead.
Here is an example of using this module to reboot servers, wait for them to come back, then check the status of a service:
plan myapp::patch (
TargetSpec $servers,
TargetSpec $version,
) {
# Upgrade the application
run_task('myapp::upgrade', $servers, { 'version' => $version })
# Reboot the servers. This app is slow to shut down so give them 5 minutes to reboot.
run_plan('reboot', $servers, reconnect_timeout => 300)
# Check the status of the service
return run_task('service', $servers, {
'name' => 'myapp',
'action' => 'status',
})
}
Return value
The reboot
plan returns a ResultSet on success. It also returns a ResultSet if fail_plan_on_errors
is false.
The plan may raise an Error if any targets fail to reboot and fail_plan_on_errors
is set to true. In that circumstance, the error raised will contain the ResultSet in its details key.
$plan_result = run_plan('reboot', targets => $targets)
$results = case $plan_result {
Error: { $plan_result.details['result_set'] }
default: { $plan_result }
}
$results.ok_set.targets # Targets that successfully rebooted
$results.error_set.targets # Targets that did not successfully reboot
Parameters
targets
A TargetSpec
object containing all targets to wait for.
message
An optional message to log when rebooting.
reboot_delay
How long (in seconds) to wait before shutting down. Defaults to 0, shutdown immediately.
disconnect_wait
How long (in seconds) to wait before checking whether the server has rebooted. Defaults to 1.
reconnect_timeout
How long (in seconds) to attempt to reconnect before giving up. Defaults to 180.
retry_interval
How long (in seconds) to wait between retries. Defaults to 1.
fail_plan_on_errors
Whether or not to raise an exception if any targets fail to reboot. Defaults to true.
Setting this value to false allows the return value of a plan to be treated the same way a task return value with _catch_errors => true
would be treated.
plan myapp::patch (
TargetSpec $targets,
String $version,
) {
$target_objects = get_targets($targets)
# Upgrade the application
$step1_results = run_task('myapp::upgrade', $target_objects,
version => $version,
_catch_errors => true,
)
# Reboot the servers. This app is slow to shut down so give them 5 minutes to reboot.
$step2_results = run_plan('reboot', targets => $step1_results.ok_set.targets,
reconnect_timeout => 300
fail_plan_on_errors => false,
)
# Check the status of the service
$step3_results = run_task('service', $step2_results.ok_set.targets,
name => 'myapp',
action => 'status',
_catch_errors => true,
)
return({
'errored-at-step1' => $step1_results.error_set.names,
'errored-at-step2' => $step2_results.error_set.names,
'errored-at-step3' => $step3_results.error_set.names,
'succeeded' => $step3_results.ok_set.names,
}.filter |$_, $names| { ! $names.empty })
}
Limitations
For an extensive list of supported operating systems, see metadata.json
Development
Puppet Labs modules on the Puppet Forge are open projects, and community contributions are essential for keeping them great. We can’t access the huge number of platforms and myriad of hardware, software, and deployment configurations that Puppet is intended to serve.
We want to keep it as easy as possible to contribute changes so that our modules work in your environment. There are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things.
For more information, see our module contribution guide.
Contributors
To see who's already involved, see the list of contributors.
Reference
Table of Contents
Resource types
Tasks
init
: Reboots a machinelast_boot_time
: Gets the last boot time of a Linux or Windows systemlast_boot_time_nix
: Gets the last boot time of a Linux systemlast_boot_time_win
: Gets the last boot time of a Windows systemnix
: Reboots a machinewin
: Reboots a machine
Plans
reboot
: Reboots targets and waits for them to be available again.
Resource types
reboot
The reboot type.
Properties
The following properties are available in the reboot
type.
when
Valid values: refreshed
, pending
When to check for, and if needed, perform a reboot. If pending
,
then the provider will check if a reboot is pending, and only
if needed, reboot the system. If refreshed
then the reboot
will only be performed in response to a refresh event from
another resource, e.g. package
.
Default value: refreshed
Parameters
The following parameters are available in the reboot
type.
apply
Valid values: immediately
, finished
When to apply the reboot. If immediately
, then the provider
will stop applying additional resources and apply the reboot once
puppet has finished syncing. If finished
, it will continue
applying resources and then perform a reboot at the end of the
run. The default is immediately
.
Default value: immediately
message
Default value: Puppet is rebooting the computer
name
namevar
onlyif
For pending reboots, only reboot if the reboot is pending for one of the supplied reasons.
provider
The specific backend to use for this reboot
resource. You will seldom need to specify this --- Puppet will usually
discover the appropriate provider for your platform.
timeout
The amount of time in seconds to wait between the time the reboot is requested and when the reboot is performed. The default timeout is 60 seconds. Note that this time starts once puppet has exited the current run.
Default value: 60
unless
For pending reboots, ignore the supplied reasons when checking pennding reboot
Tasks
init
Reboots a machine
Supports noop? false
Parameters
timeout
Data type: Optional[Variant[Pattern[/^[0-9]*$/],Integer]]
Timeout before shutdown (seconds); enforces a minimum of 3s
message
Data type: Optional[Pattern[/^[^|&]*$/]]
Shutdown message for systems that support it
shutdown_only
Data type: Optional[Boolean]
Only shut the machine down, do not reboot
last_boot_time
Gets the last boot time of a Linux or Windows system
Supports noop? false
last_boot_time_nix
Gets the last boot time of a Linux system
Supports noop? false
last_boot_time_win
Gets the last boot time of a Windows system
Supports noop? false
nix
Reboots a machine
Supports noop? false
Parameters
timeout
Data type: Optional[Integer[3]]
Timeout before shutdown (seconds)
message
Data type: Optional[Pattern[/^[^|&]*$/]]
Shutdown message for systems that support it
shutdown_only
Data type: Optional[Boolean]
Only shut the machine down, do not reboot
win
Reboots a machine
Supports noop? false
Parameters
timeout
Data type: Optional[Integer[3]]
Timeout before shutdown (seconds)
message
Data type: Optional[Pattern[/^[^|&]*$/]]
Shutdown message for systems that support it
shutdown_only
Data type: Optional[Boolean]
Only shut the machine down, do not reboot
Plans
reboot
Reboots targets and waits for them to be available again.
Parameters
The following parameters are available in the reboot
plan:
targets
Data type: TargetSpec
Targets to reboot.
message
Data type: Optional[String]
Message to log with the reboot (for platforms that support it).
Default value: undef
reboot_delay
Data type: Integer[1]
How long (in seconds) to wait before rebooting. Defaults to 1.
Default value: 1
disconnect_wait
Data type: Integer[0]
How long (in seconds) to wait before checking whether the server has rebooted. Defaults to 10.
Default value: 10
reconnect_timeout
Data type: Integer[0]
How long (in seconds) to attempt to reconnect before giving up. Defaults to 180.
Default value: 180
retry_interval
Data type: Integer[0]
How long (in seconds) to wait between retries. Defaults to 1.
Default value: 1
fail_plan_on_errors
Data type: Boolean
Raise an error if any targets do not successfully reboot. Defaults to true.
Default value: true
What are tasks?
Modules can contain tasks that take action outside of a desired state managed by Puppet. It’s perfect for troubleshooting or deploying one-off changes, distributing scripts to run across your infrastructure, or automating changes that need to happen in a particular order as part of an application deployment.
Tasks in this module release
last_boot_time
Gets the last boot time of a Linux or Windows system
What are plans?
Modules can contain plans that take action outside of a desired state managed by Puppet. It’s perfect for troubleshooting or deploying one-off changes, distributing scripts to run across your infrastructure, or automating changes that need to happen in a particular order as part of an application deployment.
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v5.0.0 (2023-04-24)
Changed
v4.3.1 (2023-04-24)
Fixed
- pdksync - (CONT-189) Remove support for RedHat6 / OracleLinux6 / Scientific6 #335 (david22swan)
- pdksync - (CONT-130) - Dropping Support for Debian 9 #332 (jordanbreen28)
v4.3.0 (2022-10-03)
Added
- pdksync - (GH-cat-11) Certify Support for Ubuntu 22.04 #329 (david22swan)
Fixed
- (MAINT) Dropped support for Windows(7,8, 2008 Server & 2008 R2 Server) and AIX (5.3, 6.1) #330 (jordanbreen28)
v4.2.0 (2022-06-06)
Added
- pdksync - (GH-cat-12) Add Support for Redhat 9 #324 (david22swan)
- pdksync - (FM-8922) - Add Support for Windows 2022 #314 (david22swan)
- pdksync - (IAC-1753) - Add Support for AlmaLinux 8 #309 (david22swan)
- pdksync - (IAC-1751) - Add Support for Rocky 8 #308 (david22swan)
Fixed
- pdksync - (GH-iac-334) Remove Support for Ubuntu 14.04/16.04 #316 (david22swan)
- pdksync - (IAC-1787) Remove Support for CentOS 6 #312 (david22swan)
- pdksync - (IAC-1598) - Remove Support for Debian 8 #307 (david22swan)
v4.1.0 (2021-08-23)
Added
- pdksync - (IAC-1709) - Add Support for Debian 11 #304 (david22swan)
Fixed
v4.0.2 (2021-03-19)
Fixed
v4.0.1 (2021-03-15)
Fixed
- Cleanup: Changed to ctrl::sleep() and removed redundant reboot::sleep() function #284 (fetzerms)
- (MODULES-10955) More robust handling of reboot-task output #280 (fetzerms)
v4.0.0 (2021-02-27)
Changed
- pdksync - (MAINT) Remove SLES 11 support #279 (sanfrancrisko)
- pdksync - (MAINT) Remove RHEL 5 family support #278 (sanfrancrisko)
- pdksync - Remove Puppet 5 from testing and bump minimal version to 6.0.0 #275 (carabasdaniel)
v3.2.0 (2021-01-19)
Added
- pdksync - (feat) Add support for Puppet 7 #265 (daianamezdrea)
v3.1.0 (2020-11-17)
Added
- pdksync - (IAC-973) - Update travis/appveyor to run on new default branch
main
#253 (david22swan)
v3.0.0 (2020-02-27)
Changed
v2.4.0 (2020-02-03)
Added
- Add
shutdown\_only
parameter to tasks #224 (MikaelSmith) - (MODULES-8201) Add pending reboot due to domain join for windows. #179 (razorbladex401)
Fixed
v2.3.0 (2019-12-06)
Added
- (FM-8700) - Addition of Support for CentOs 8 #221 (david22swan)
- pdksync - Add support on Debian10 #218 (lionce)
Fixed
2.2.0 (2019-07-24)
v2.2.0 (2019-07-24)
Added
Fixed
- Add additional guards for nix process detach #210 (reidmv)
- MODULES-8726: Ensure sbin is in the path #205 (xalimar)
- [MODULES-8718] Check for root or sudo in the reboot task nix.sh script #203 (thilinapiy)
- (MODULES-8717) Fix dependency issue on boltspec #202 (HelenCampbell)
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[Unreleased]
[2.1.2] - 2018-12-13
Fixed
- Fix infinite reboot plan wait loop on Windows when reboot takes under a minute (MODULES-8353)
- Mark last_boot_time task implementations as private so they're not listed by Bolt.
[2.1.1] - 2018-12-06
Added
- Use wait_until_available to reduce task runs (BOLT-956)
- Add bash and powershell implementations of reboot task (BOLT-459)
- Support for Puppet 6 (MODULES-7832)
- Add Rubocop to enforce PDK rules (MODULES-5896)
- Add Beaker Testmode Switcher (MODULES-6745)
- Add acceptance-test support for Debian 9, Ubuntu 16.04 and Ubuntu 18.04 (MODULES-7417)
Changed
- Update limitations in README (MODULES-7634)
- Convert module to PDK format (MODULES-7403)
- Use Beaker 4 (MODULES-7658)
Fixed
- Fix conditionals in Windows provider (MODULES-3975)
Removed
- Support for SLES 5 and Debian 7 (FM-6968)
Security
- Fix CVE-2018-6508
[2.0.0] - 2018-01-23
Added
- Support for Puppet 5
- Add a Puppet Task for performing on-demand reboots (MODULES5804)
- Add capability to reboot a Windows machine if specific conditions are met via the
onlyif
parameter (MODULES-4328) - Add capability to prevent a reboot resource from rebooting a Windows machine if specific conditions are met via the
unless
parameter (MODULES-4328)
Fixed
- Converted test framework from Beaker to Beaker-RSpec (MODULES-5977)
Removed
- Ended support for Puppet 3
[1.2.1] - 2015-11-24
Added
- Pending reboot - Allow setting a flag directly on provider (MODULES-2822)
Changed
- Fix use of read method from Registry (MODULES-2804)
[1.2.0] - 2015-10-14
Added
- Pending reboot - detect computer rename (MODULES-2657)
- Pending reboot - Detect DSC pending reboot state (MODULES-2658)
- Pending reboot - Detect CCM pending reboot state (MODULES-2659)
Changed
- Fix Linux provider failing (MODULES-2585)
[1.1.0] - 2015-07-28 - Supported Release 1.1.0
Added
- Add notice when system is scheduling a reboot
Changed
- Move Linux provider to use new POSIX provider
- Fix Unit and Acceptance Test cases
[1.0.0] - 2015-04-15
Added
- Linux support
Changed
- Reboot is now triggered
at_exit
instead of watching for ruby process to end
Removed
- Prompt for windows reboot
catalog_apply_timeout
parameter
[0.1.9] - 2014-11-11
Changed
- Fixes issues URL in metadata
[0.1.8] - 2014-08-25
Changed
- Fixes for working on x64-native ruby.
[0.1.7] - 2014-07-15
Changed
- Update
metadata.json
so the module can be uninstalled and upgraded via thepuppet module
command.
[0.1.6] - 2014-04-15
Changed
- Updated metadata.
[0.1.5] - 2014-03-04
Added
- The version is
0.x
but should be considered a1.x
for semantic versioning purposes.
[0.1.4] - 2014-02-07
Changed
- Add a workaround for a ruby bug that can prevent ruby.exe from exiting (PUP-1578)
[0.1.2] - 2013-09-27
Changed
- Never load sample.pp in production
[0.1.1] - 2013-09-27
- Only manage reboot resources on systems where shutdown.exe exists (FM-105)
- Module does not work on Windows 2003 (FM-106)
- Update description in init.pp (PP-433)
[0.1.0] - 2013-09-17
Added
- Initial release of the reboot module
* This Changelog was automatically generated by github_changelog_generator
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] 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.
Quality checks
We run a couple of automated scans to help you assess a module’s quality. Each module is given a score based on how well the author has formatted their code and documentation and select modules are also checked for malware using VirusTotal.
Please note, the information below is for guidance only and neither of these methods should be considered an endorsement by Puppet.
Malware scan results
The malware detection service on Puppet Forge is an automated process that identifies known malware in module releases before they’re published. It is not intended to replace your own virus scanning solution.
Learn more about malware scans- Module name:
- puppetlabs-reboot
- Module version:
- 5.0.0
- Scan initiated:
- April 24th 2023, 6:44:48
- Detections:
- 0 / 59
- Scan stats:
- 59 undetected
- 0 harmless
- 0 failures
- 0 timeouts
- 0 malicious
- 0 suspicious
- 15 unsupported
- Scan report:
- View the detailed scan report