https://github.com/puppetlabs/puppetlabs-wsus_client
puppetlabs - wsus_client module
https://github.com/puppetlabs/puppetlabs-wsus_client
hacktoberfest module supported
Last synced: about 1 year ago
JSON representation
puppetlabs - wsus_client module
- Host: GitHub
- URL: https://github.com/puppetlabs/puppetlabs-wsus_client
- Owner: puppetlabs
- License: apache-2.0
- Created: 2015-04-03T06:07:20.000Z (about 11 years ago)
- Default Branch: main
- Last Pushed: 2025-02-04T02:19:41.000Z (over 1 year ago)
- Last Synced: 2025-03-28T11:10:26.408Z (about 1 year ago)
- Topics: hacktoberfest, module, supported
- Language: Ruby
- Homepage:
- Size: 409 KB
- Stars: 10
- Watchers: 150
- Forks: 32
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# wsus_client
#### Table of Contents
1. [Overview](#overview)
2. [Module Description](#module-description)
* [What wsus_client affects](#what-wsus_client-affects)
3. [Setup](#setup)
* [Beginning with wsus_client](#beginning-with-wsus_client)
4. [Usage](#usage)
* [Schedule updates](#schedule-updates)
5. [Reference](#reference)
6. [Limitations](#limitations)
7. [License](#license)
8. [Development](#development)
## Overview
The Windows Server Update Service (WSUS) lets Windows administrators manage operating system updates using their own servers instead of Microsoft's Windows Update servers.
## Module Description
This module configures Puppet agents to schedule update downloads and installations from a WSUS server, manage user access to update settings, and configure automatic updates.
### What wsus_client affects
This module modifies registry keys in `HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate`. For details about how registry key-driven WSUS configuration works, see the [Microsoft TechNet documentation](https://technet.microsoft.com/en-us/library/dd939844.aspx).
**Note**: Because this module modifies registry keys on clients, it is incompatible with Group Policy Objects that manage the same WSUS settings. **Do not use wsus_client to configure WSUS access or automatic updates if you use Group Policies to configure such options on clients**, as doing so can lead to unexpected behavior. Instead, consult Microsoft's documentation on [configuring automatic updates using Group Policy](https://technet.microsoft.com/en-us/library/dd939933.aspx).
## Setup
To use wsus_client, you must have a configured and running WSUS server, and your clients must run Windows Server 2003 or newer. For more information about deploying WSUS, see Microsoft's [WSUS Deployment Guide](https://technet.microsoft.com/en-us/library/dd939906.aspx).
To install this module on your Puppet server, run this command:
~~~
$ puppet module install [--modulepath ] puppetlabs/wsus_client
~~~
If necessary, use the optional `--modulepath` argument to specify your Puppet server's `modulepath`.
### Beginning with wsus_client
To have the client use a WSUS server and set the server's location, declare the `wsus_client` class with the WSUS server's url in the `server_url` parameter.
For example, to point a node at a WSUS server located at `http://myserver` on port 8530, declare this class:
~~~ puppet
class { 'wsus_client':
server_url => 'http://myserver:8530',
}
~~~
## Usage
### Schedule updates
To schedule when to retrieve and automatically install updates from a WSUS server, declare the `wsus_client` class with a WSUS [`server_url`][] as well as the [`auto_update_option`][], [`scheduled_install_day`][], and [`scheduled_install_hour`][] parameters.
For example, to schedule weekly updates at 2 a.m. on Tuesdays using a WSUS server at `http://myserver:8530`, declare this class:
~~~ puppet
class { 'wsus_client':
server_url => 'http://myserver:8530',
auto_update_option => "Scheduled",
scheduled_install_day => "Tuesday",
scheduled_install_hour => 2,
}
~~~
Clients can report update events to a WSUS status server as defined by the `WUStatusServer` registry key, which must have the same value as the `WUServer` policy to be valid for automatic updates. For details, see the [Microsoft TechNet documentation](TechNet).
To report the client's status to the WSUS server, use the `enable_status_server` parameter. For example, to configure a client to use `http://myserver:8530` for both updates and status reporting, declare this class:
~~~ puppet
class { 'wsus_client':
server_url => 'http://myserver:8530',
enable_status_server => true,
}
~~~
## Reference
For information on the classes and types, see the [REFERENCE.md](https://github.com/puppetlabs/puppetlabs-wsus_client/blob/main/REFERENCE.md).
## Limitations
This module requires clients running Windows Server 2003 or newer, and a configured and active [WSUS server](https://technet.microsoft.com/en-us/library/hh852338.aspx) to use all of the module's options except `purge_values`. For detailed compatibility information, see the [supported module compatibility matrix](https://forge.puppet.com/supported#compat-matrix).
## License
This codebase is licensed under the Apache2.0 licensing, however due to the nature of the codebase the open source dependencies may also use a combination of [AGPL](https://opensource.org/license/agpl-v3/), [BSD-2](https://opensource.org/license/bsd-2-clause/), [BSD-3](https://opensource.org/license/bsd-3-clause/), [GPL2.0](https://opensource.org/license/gpl-2-0/), [LGPL](https://opensource.org/license/lgpl-3-0/), [MIT](https://opensource.org/license/mit/) and [MPL](https://opensource.org/license/mpl-2-0/) Licensing.
## Development
If you would like to contribute to this module, please follow the rules in the [CONTRIBUTING.md](https://github.com/puppetlabs/puppetlabs-wsus_client/blob/main/CONTRIBUTING.md). For more information, see our [module contribution guide](https://puppet.com/docs/puppet/latest/contributing.html). To see who's already involved, see the list of [contributors](https://github.com/puppetlabs/puppetlabs-wsus_client/graphs/contributors).