https://github.com/puppetlabs/puppetlabs-iis
Manage IIS for Windows Server 2008 and above. Maintain application sites, pools, virtual applications, and many other IIS settings.
https://github.com/puppetlabs/puppetlabs-iis
hacktoberfest module supported
Last synced: 3 months ago
JSON representation
Manage IIS for Windows Server 2008 and above. Maintain application sites, pools, virtual applications, and many other IIS settings.
- Host: GitHub
- URL: https://github.com/puppetlabs/puppetlabs-iis
- Owner: puppetlabs
- License: apache-2.0
- Created: 2016-07-13T20:05:55.000Z (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2025-03-19T07:41:07.000Z (3 months ago)
- Last Synced: 2025-03-26T13:18:25.027Z (3 months ago)
- Topics: hacktoberfest, module, supported
- Language: Ruby
- Homepage:
- Size: 1010 KB
- Stars: 14
- Watchers: 122
- Forks: 64
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# iis
#### Table of Contents
1. [Overview](#overview)
2. [Module Description](#module-description)
3. [Setup](#setup)
* [Beginning with puppetlabs-iis](#beginning-with-puppetlabs-iis)
4. [Usage](#usage)
5. [Reference](#reference)
6. [Limitations](#limitations)
7. [License](#license)
8. [Development](#development)## Description
This module adds a provider to manage IIS sites and application pools.
## Setup
### Beginning with puppetlabs-iis
This module can both manage and install IIS on your server. For example, a minimal IIS install can be accomplished by ensuring the `Web-WebServer` and `Web-Scripting-Tools` Windows Features are present.
Here is an example that installs IIS and creates a web site using the default application pool.
```puppet
$iis_features = ['Web-WebServer','Web-Scripting-Tools']iis_feature { $iis_features:
ensure => 'present',
}# Delete the default website to prevent a port binding conflict.
iis_site {'Default Web Site':
ensure => absent,
require => Iis_feature['Web-WebServer'],
}iis_site { 'minimal':
ensure => 'started',
physicalpath => 'c:\\inetpub\\minimal',
applicationpool => 'DefaultAppPool',
require => [
File['minimal'],
Iis_site['Default Web Site']
],
}file { 'minimal':
ensure => 'directory',
path => 'c:\\inetpub\\minimal',
}
```## Usage
This minimal example will create a web site named 'complete' using an application pool named 'minimal_site_app_pool'.
```puppet
iis_application_pool { 'minimal_site_app_pool':
ensure => 'present',
state => 'started',
managed_pipeline_mode => 'Integrated',
managed_runtime_version => 'v4.0',
} ->iis_site { 'minimal':
ensure => 'started',
physicalpath => 'c:\\inetpub\\minimal',
applicationpool => 'minimal_site_app_pool',
require => File['minimal'],
}file { 'minimal':
ensure => 'directory',
path => 'c:\\inetpub\\minimal',
}
```This complete example will create a web site named 'complete' using an application pool named 'complete_site_app_pool', with a virtual directory named 'vdir'. This example uses the `puppetlabs-acl module` to set permissions on directories.
```puppet
# Create Directoriesfile { 'c:\\inetpub\\complete':
ensure => 'directory'
}file { 'c:\\inetpub\\complete_vdir':
ensure => 'directory'
}# Set Permissions
acl { 'c:\\inetpub\\complete':
permissions => [
{'identity' => 'IISCompleteGroup', 'rights' => ['read', 'execute']},
],
}acl { 'c:\\inetpub\\complete_vdir':
permissions => [
{'identity' => 'IISCompleteGroup', 'rights' => ['read', 'execute']},
],
}# Configure IIS
iis_application_pool { 'complete_site_app_pool':
ensure => 'present',
state => 'started',
managed_pipeline_mode => 'Integrated',
managed_runtime_version => 'v4.0',
}# Application Pool No Managed Code .Net CLR Version set up
iis_application_pool {'test_app_pool':
ensure => 'present',
enable32_bit_app_on_win64 => true,
managed_runtime_version => '',
managed_pipeline_mode => 'Classic',
start_mode => 'AlwaysRunning'
}iis_site { 'complete':
ensure => 'started',
physicalpath => 'c:\\inetpub\\complete',
applicationpool => 'complete_site_app_pool',
enabledprotocols => 'https',
bindings => [
{
'bindinginformation' => '*:443:',
'protocol' => 'https',
'certificatehash' => '3598FAE5ADDB8BA32A061C5579829B359409856F',
'certificatestorename' => 'MY',
'sslflags' => 1,
},
],
require => File['c:\\inetpub\\complete'],
}iis_virtual_directory { 'vdir':
ensure => 'present',
sitename => 'complete',
physicalpath => 'c:\\inetpub\\complete_vdir',
require => File['c:\\inetpub\\complete_vdir'],
}
```
### Note about physicalpaths
This module does **not support** physicalpaths that end with a forwardslash (`/`). As such, the module:
- Will remove any forwardslashes at the end of a physicalpath found in the manifest.
- Will remove any forwardslashes at the end of a physicalpath found in any existing resource.## Reference
For information on the classes and types, see the [REFERENCE.md](https://github.com/puppetlabs/puppetlabs-iis/blob/main/REFERENCE.md).
## Limitations
### Compatibility
#### OS Compatibility
This module is compatible only with `Windows Server 2008R2`, `Windows Server 2012`, `Windows Server 2012R2`, `Windows Server 2016`,`Windows Server 2016 Core`, `Windows Server 2019` and `Windows Server 2022`.
#### IIS Compatibility
This module only supports `IIS 7.5`, `IIS 8`, `IIS 8.5` or `IIS 10.0`.
#### PowerShell Compatibility
This module requires PowerShell v2 or greater. Works best with PowerShell v3 or above.
### Known Issues
N/A
## Development
If you would like to contribute to this module, please follow the rules in the [CONTRIBUTING.md](https://github.com/puppetlabs/puppetlabs-iis/blob/main/CONTRIBUTING.md). For more information, see our [module contribution guide.](https://puppet.com/docs/puppet/latest/contributing.html)
## 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.