iis
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
Start using this module
Add this module to your Puppetfile:
mod 'puppetlabs-iis', '10.0.0'
Learn more about managing modules with a PuppetfileDocumentation
iis
Table of Contents
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.
$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'.
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.
# Create Directories
file { '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.
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. For more information, see our module contribution guide.
Reference
Table of Contents
Resource types
iis_application
: Allows creation of a new IIS Application and configuration of application parameters.iis_application_pool
: Allows creation of a new IIS Application Pool and configuration of application pool parameters.iis_feature
: Allows installation and removal of IIS Features.iis_site
: Allows creation of a new IIS Web Site and configuration of site parameters.iis_virtual_directory
: Allows creation of a new IIS Virtual Directory and configuration of virtual directory parameters.
Resource types
iis_application
The iis_application type uses an applicationname and a sitename to create an IIS Application. When specifying an application you must specify both. You can specify the sitename by putting it in the title as in "$site_name\$application_name", or you can use the named parameters. If converting a virtual directory to an app, you can use the virtual_directory parameter to specify the site and omit the sitename parameter. To manage two applications of the same name within different websites on an IIS instance, you must ensure the resource title is unique. You can do this by entering both the sitename and applicationname in the title, or using a descriptive title for the resource and using the named parameters for sitename and applicationname
Properties
The following properties are available in the iis_application
type.
applicationpool
The name of the application pool for the application.
authenticationinfo
enabledprotocols
The comma-delimited list of enabled protocols for the application. Valid protocols are: \'http\', \'https\', \'net.pipe\', \'net.tcp\', \'net.msmq\', \'msmq.formatname\'.
ensure
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
physicalpath
The physical path to the application directory. This path must be fully qualified.
sitename
The name of the site for the application.
sslflags
Valid values: Ssl
, SslRequireCert
, SslNegotiateCert
The SSL settings for the application. Valid options are an array of flags, with the following names: \'Ssl\', \'SslRequireCert\', \'SslNegotiateCert\', \'Ssl128\'.
Parameters
The following parameters are available in the iis_application
type.
applicationname
The name of the application. The virtual path of the application is '/'.
provider
The specific backend to use for this iis_application
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
virtual_directory
The IIS Virtual Directory to convert to an application on create. Similar to iis_application, iis_virtual_directory uses composite namevars.
iis_application_pool
Allows creation of a new IIS Application Pool and configuration of application pool parameters.
Properties
The following properties are available in the iis_application_pool
type.
auto_shutdown_exe
Specifies an executable to run when the WWW service shuts down an
application pool. You can use the auto_shutdown_params
property to
send parameters to the executable.
auto_shutdown_params
Specifies command-line parameters for the executable that is specified
in the auto_shutdown_exe
property.
auto_start
Valid values: true
, false
When true
, indicates to the World Wide Web Publishing Service (W3SVC)
that the application pool should be automatically started when it is
created or when IIS is started.
clr_config_file
Specifies the .NET configuration file for the application pool
cpu_action
Valid values: NoAction
, KillW3wp
, Throttle
, ThrottleUnderLoad
Configures the action that IIS takes when a worker process exceeds its configured CPU limit.
cpu_limit
Configures the maximum percentage of CPU time (in 1/1000ths of one
percent) that the worker processes in an application pool are
allowed to consume over a period of time as indicated by the
cpu_reset_interval
property. If the limit set by the limit
property is exceeded, an event is written to the event log and an
optional set of events can be triggered. These optional events are
determined by the cpu_action
property.
cpu_reset_interval
Specifies the reset period (in minutes) for CPU monitoring and throttling limits on an application pool. When the number of minutes elapsed since the last process accounting reset equals the number specified by this property, IIS resets the CPU timers for both the logging and limit intervals.
Important: The resetInterval value must be greater than the time between logging operations, otherwise IIS will reset counters before logging has occurred, and process accounting will not occur.
Note: Because process accounting in IIS uses Windows job objects to monitor CPU times for the whole process, process accounting will only log and throttle applications that are isolated in a separate process from IIS.
cpu_smp_affinitized
Valid values: true
, false
Specifies whether a particular worker process assigned to an
application pool should also be assigned to a given CPU. This
property is used together with the cpu_smp_processor_affinity_mask
and cpu_smp_processor_affinity_mask2
properties.
cpu_smp_processor_affinity_mask
Specifies the hexadecimal processor mask for multi-processor
computers, which indicates to which CPU the worker processes in an
application pool should be bound. Before this property takes effect,
the cpu_smp_affinitized
property must be set to true
for the
application pool.
Note: On 64-bit computers, the cpu_smp_processor_affinity_mask
property contains the low-order DWORD for the processor mask, and
the cpu_smp_processor_affinity_mask2
property contains the
high-order DWORD for the processor mask. On 32-bit computers, the
cpu_smp_processor_affinity_mask2
property has no effect.
If you set the value to 1 (which corresponds to 00000000000000001 in binary), the worker processes in an application pool run on only the first processor. If you set the value to 2 (which corresponds to 0000000000000010 in binary), the worker processes run on only the second processor. If you set the value to 3 (which corresponds to 0000000000000011 in binary) the worker processes run on both the first and second processors.
Note: Do not set this property to 0. Doing so disables symmetric multiprocessing (SMP) affinity and creates an error condition. This means that processes running on one CPU will not remain affiliated with that CPU throughout their lifetime.
cpu_smp_processor_affinity_mask2
Specifies the high-order DWORD hexadecimal processor mask for 64-bit
multi-processor computers, which indicates to which CPU the worker
processes in an application pool should be bound. Before this property
takes effect, the cpu_smp_affinitized
property must be set to true
for the application pool.
Note: On 64-bit computers, the cpu_smp_processor_affinity_mask
property contains the low-order DWORD for the processor mask, and the
cpu_smp_processor_affinity_mask2
property contains the high-order
DWORD for the processor mask. On 32-bit computers, the
cpu_smp_processor_affinity_mask2
property has no effect.
disallow_overlapping_rotation
Valid values: true
, false
Specifies whether the WWW Service should start another worker
process to replace the existing worker process while that process is
shutting down. The value of this property should be set to true
if
the worker process loads any application code that does not support
multiple worker processes.
disallow_rotation_on_config_change
Valid values: true
, false
Specifies whether the WWW Service should rotate worker processes in an application pool when the configuration has changed.
enable32_bit_app_on_win64
Valid values: true
, false
When true
, enables a 32-bit application to run on a computer that
runs a 64-bit version of Windows.
enable_configuration_override
Valid values: true
, false
When true
, indicates that delegated settings in Web.config files
will processed for applications within this application pool. When
false
, all settings in Web.config files will be ignored for this
application pool.
ensure
Valid values: present
, absent
Specifies whether an application pool should be present or absent.
If state
is not specified, the application pool will be created
and left in the default started state.
Default value: present
identity_type
Valid values: ApplicationPoolIdentity
, LocalService
, LocalSystem
, NetworkService
, SpecificUser
Specifies the account identity under which the application pool runs. Note: Starting in IIS 7.5 the default value is 'ApplicationPoolIdentity'. (In IIS 7.0 the default value was 'NetworkService').
idle_timeout
Specifies how long (in minutes) a worker process should run idle if no new requests are received and the worker process is not processing requests. After the allocated time passes, the worker process requests that it be shut down by the WWW service.
idle_timeout_action
Valid values: Terminate
, Suspend
Specifies the action to perform when the idle_timeout
duration has
been reached. Before IIS 8.5, a worker process that was idle for the
duration of the idle_timeout
property would be terminated. After
IIS 8.5, you have the choice of terminating a worker process that
reaches the idle_timeout
limit, or suspending it by moving it from
memory to disk. Suspending a process will likely take less time and
consume less memory than terminating it.
load_balancer_capabilities
Valid values: HttpLevel
, TcpLevel
Specifies behavior when a worker process cannot be started, such as when the request queue is full or an application pool is in rapid-fail protection.
load_user_profile
Valid values: true
, false
Specifies whether IIS loads the user profile for the application
pool identity. Setting this value to false
causes IIS to revert to
IIS 6.0 behavior. IIS 6.0 does not load the user profile for an
application pool identity.
log_event_on_process_model
Specifies which action taken in the process gets logged to the Event
Viewer. In IIS 8.0, the only action that applies is the
idle_timeout_action
, in which the process is terminated because it
was idle for the idle_timeout
period.
log_event_on_recycle
Specifies that IIS should log an event when an application pool is
recycled. The log_event_on_recycle
property must have a bit set
corresponding to the reason for the recycle if IIS is to log the
event. The log_event_on_recycle
property can have one or more of the
following possible values: 'ConfigChange', 'IsapiUnhealthy', 'Memory',
'OnDemand', 'PrivateMemory', 'Requests', 'Schedule' and 'Time'.
If you specify more than one value, separate them with a comma (,). The default flags for versions of IIS earlier than IIS 10 are 'Time', 'Memory', and 'PrivateMemory'; for IIS 10 and later are all values.
logon_type
Valid values: LogonBatch
, LogonService
Specifies the logon type for the process identity. (For additional information about logon types, see the LogonUser Function topic on Microsoft's MSDN Web site).
managed_pipeline_mode
Valid values: Integrated
, Classic
Specifies the request-processing mode that is used to process requests for managed content.
managed_runtime_loader
Specifies the managed loader to use for pre-loading the the application pool. Note: This property was added in IIS 7.5. The default value is 'webengine4.dll'.
managed_runtime_version
Valid values: ''
, v1.1
, v2.0
, v4.0
Specifies the .NET Framework version to be used by the application pool.
Specify an empty string (''
) to set as 'No Managed Code.'
manual_group_membership
Valid values: true
, false
Specifies whether the IIS_IUSRS group Security Identifier (SID) is
added to the worker process token. When false
, IIS automatically
uses an application pool identity as though it were a member of the
built-in IIS_IUSRS group, which has access to necessary file and
system resources. When true
, an application pool identity must be
explicitly added to all resources that a worker process requires at
runtime.
max_processes
Indicates the maximum number of worker processes that would be used for the application pool.
A value of 1 indicates a maximum of a single worker process for the application pool. This would be the setting on a server that does not have NUMA nodes.
A value of 2 or more indicates a Web garden that uses multiple worker processes for an application pool (if necessary).
A value of 0 specifies that IIS runs the same number of worker
processes as there are Non-Uniform Memory Access (NUMA) nodes. IIS
identifies the number of NUMA nodes that are available on the hardware
and starts the same number of worker processes. For example, if you
have four NUMA nodes, it will use a maximum of four worker processes
for that application pool. In this example, setting max_processes
to
a value of 0 or 4 would have the same result.
orphan_action_exe
Specifies an executable to run when the WWW service orphans a worker
process (if the orphan_worker_process
is set to true
). You can use
the orphan_action_params
property to send parameters to the
executable.
orphan_action_params
Indicates command-line parameters for the executable named by the
orphan_action_exe
property. To specify the process ID of the
orphaned process, use '%1%'.
orphan_worker_process
Valid values: true
, false
Specifies whether to assign a worker process to an orphan state instead of terminating it when an application pool fails.
pass_anonymous_token
Valid values: true
, false
When true
, the Windows Process Activation Service (WAS) creates
and passes a token for the built-in IUSR anonymous user account to
the Anonymous authentication module. The Anonymous authentication
module uses the token to impersonate the built-in account. When
false
, the token is not passed. Note: The IUSR anonymous user
account replaces the IIS_MachineName anonymous account. The IUSR
account can be used by IIS or other applications. It does not have
any privileges assigned to it during setup.
password
Specifies the password associated with the user_name
property. This
property is only necessary when the value of identity_type
is
'SpecificUser'.
Note: To avoid storing unencrypted password strings in configuration files, this uses AppCmd.exe. This encrypts the password automatically before it is written to the XML configuration files. This provides better password security than storing unencrypted passwords.
ping_interval
Specifies the time between health-monitoring pings that the WWW service sends to a worker process
ping_response_time
Specifies the time that a worker process is given to respond to a health-monitoring ping. After the time limit is exceeded, the WWW service terminates the worker process.
pinging_enabled
Valid values: true
, false
The pinging_enabled property specifies whether the WWW Service should periodically monitor the health of a worker process. Setting the value of this property to true indicates to the WWW service to monitor the worker processes to ensure that the they are running and healthy.
queue_length
Indicates to HTTP.sys how many requests to queue for an application
pool before rejecting future requests. When the value set for this
property is exceeded, IIS rejects subsequent requests with a 503
error. If the load_balancer_capabilities
setting is 'TcpLevel',
the connection is closed instead of rejecting requests with a 503.
For more information about load_balancer_capabilities
, see
Failure Settings for an Application
Pool.
Valid options 11 to 65535.
rapid_fail_protection
Setting to true
instructs the WWW service to remove from service
all applications that are in an application pool when:
-
The number of worker process crashes has reached the maximum specified in the
rapid_fail_protection_max_crashes
property. -
The crashes occur within the number of minutes specified in the
rapid_fail_protection_interval
property.
Valid options true
or false
.
rapid_fail_protection_interval
Specifies the number of minutes before the failure count for a process is reset.
rapid_fail_protection_max_crashes
Specifies the maximum number of failures allowed within the number of
minutes specified by the rapid_fail_protection_interval
property.
restart_memory_limit
Specifies the amount of virtual memory (in kilobytes) that a worker process can use before the worker process is recycled. The maximum value supported for this property is 4,294,967 KB.
A value of 0 sets this to unlimited.
restart_private_memory_limit
Specifies the amount of private memory (in kilobytes) that a worker process can use before the worker process recycles. The maximum value supported for this property is 4,294,967 KB.
A value of 0 sets this to unlimited.
restart_requests_limit
Specifies that the worker process should be recycled after it processes a specific number of requests.
A value of 0 sets this to unlimited.
restart_schedule
Specifies the specific times in a 24-hour period that the worker process should be recycled.
restart_time_limit
Specifies that the worker process should be recycled after a specified amount of time has elapsed.
set_profile_environment
Valid values: true
, false
When set to true
, WAS creates an environment block to pass to
CreateProcessAsUser when creating a worker process. This ensures that
the environment is set based on the user profile for the new process.
shutdown_time_limit
Specifies the time that the W3SVC service waits after it initiated a
recycle. If the worker process does not shut down within the
shutdown_time_limit
, it will be terminated by the W3SVC service.
start_mode
Valid values: OnDemand
, AlwaysRunning
Specifies the startup type for the application pool.
startup_time_limit
Specifies the time that IIS waits for an application pool to start. If
the application pool does not startup within the startup_time_limit
,
the worker process is terminated and the rapid-fail protection count
is incremented.
state
Valid values: started
, stopped
, Stopped
, Started
Aliases: "Stopped"=>"stopped", "Started"=>"started"
The state of the ApplicationPool. By default, a newly created application pool will be started
user_name
Specifies the identity under which the application pool runs when the
identity_type
is 'SpecificUser'.
Parameters
The following parameters are available in the iis_application_pool
type.
name
namevar
The unique name of the ApplicationPool.
provider
The specific backend to use for this iis_application_pool
resource. You will seldom need to specify this --- Puppet
will usually discover the appropriate provider for your platform.
iis_feature
Allows installation and removal of IIS Features.
Properties
The following properties are available in the iis_feature
type.
ensure
Valid values: present
, absent
Manage the state of this rule.
Default value: present
Parameters
The following parameters are available in the iis_feature
type.
include_all_subfeatures
Indicates whether to install all sub features of a parent IIS feature. For instance, ASP.NET as well as the IIS Web Server
include_management_tools
Indicates whether to automatically install all managment tools for a given IIS feature
name
namevar
The unique name of the feature to manage.
provider
The specific backend to use for this iis_feature
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
restart
Indicates whether to allow a restart if the IIS feature installation requests one
source
Optionally include a source path for the installation media for an IIS feature
iis_site
Allows creation of a new IIS Web Site and configuration of site parameters.
Properties
The following properties are available in the iis_site
type.
applicationpool
The name of an ApplicationPool for this IIS Web Site
authenticationinfo
bindings
The protocol, address, port, and ssl certificate bindings for a web site.
For web (http/https) protocols, the bindinginformation value should
be in the form of the IPv4/IPv6 address or wildcard *, then the port,
then the optional hostname separated by colons:
(ip|\*):[1-65535]:(hostname)?
A protocol value of "http" indicates a binding that uses the HTTP protocol. A value of "https" indicates a binding that uses HTTP over SSL.
The sslflags parameter accepts integer values from 0 to 3 inclusive.
- A value of "0" specifies that the secure connection be made using an IP/Port combination. Only one certificate can be bound to a combination of IP address and the port.
- A value of "1" specifies that the secure connection be made using the port number and the host name obtained by using Server Name Indication (SNI).
- A value of "2" specifies that the secure connection be made using the centralized SSL certificate store without requiring a Server Name Indicator.
- A value of "3" specifies that the secure connection be made using the centralized SSL certificate store while requiring Server Name Indicator
defaultpage
Specifies the default page of the site.
enabledprotocols
The protocols enabled for the site. If 'https' is specified, 'http' is implied. If no value is provided, then this setting is disabled. Can be a comma delimited list of protocols. Valid protocols are: 'http', 'https', 'net.pipe', 'net.tcp', 'net.msmq', 'msmq.formatname'.
ensure
Valid values: stopped
, started
, present
, absent
, false
, true
Aliases: "false"=>"stopped", "true"=>"started"
Specifies whether a site should be present or absent. If present is specified, the site will be created but left in the default stopped state. If started is specified, then the site will be created as well as started. If stopped is specified, then the site will be created and kept stopped.
limits
Configure limits for an IIS Site
logflags
Specifies what W3C fields are logged in the log file. This is only
valid when logformat
is set to 'W3C'.
logformat
Specifies the format for the log file. When set to 'W3C', used with
logflags
loglocaltimerollover
Valid values: true
, false
Use the system\'s local time to determine for the log file name as well as when the log file is rolled over
logpath
Specifies the physical path to place the log file
logperiod
Specifies how often the log file should rollover
logtruncatesize
Specifies how large the log file should be before truncating it. The value must be in bytes. The value can be any size between \'1048576 (1MB)\' and \'4294967295 (4GB)\'.
physicalpath
The physical path to the site directory. This path must be fully qualified.
preloadenabled
Valid values: true
, false
Enables loading website automatically without a client request first
serviceautostart
Valid values: true
, false
Enables autostart on the specified website
serviceautostartprovidername
Specifies the provider used for service auto start. Used with :serviceautostartprovidertype. The element specifies a collection of managed assemblies that Windows Process Activation Service (WAS) will load automatically when the startMode attribute of an application pool is set to AlwaysRunning. This collection allows developers to specify assemblies that perform initialization tasks before any HTTP requests are serviced.
example: serviceautostartprovidername => "MyAutostartProvider" serviceautostartprovidertype => "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
serviceautostartprovidertype
Specifies the application type for the provider used for service auto start. Used with :serviceautostartprovider
example: serviceautostartprovidername => "MyAutostartProvider" serviceautostartprovidertype => "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
Parameters
The following parameters are available in the iis_site
type.
name
namevar
The Name of the IIS site. Used for uniqueness. Will set the target to this value if target is unset.
provider
The specific backend to use for this iis_site
resource. You will seldom need to specify this --- Puppet will usually
discover the appropriate provider for your platform.
iis_virtual_directory
Allows creation of a new IIS Virtual Directory and configuration of virtual directory parameters.
Properties
The following properties are available in the iis_virtual_directory
type.
application
The application under which the virtual directory is created
ensure
Valid values: present
, absent
Manage the state of this rule.
Default value: present
password
Specifies the password associated with the user_name property.
physicalpath
The physical path to the virtual directory. This path must be fully
qualified. Though not recommended, this can be a UNC style path.
Supply credentials for access to the UNC path with the user_name
and
password
properties.
sitename
The site name under which the virtual directory is created
user_name
Specifies the identity that should be impersonated when accessing the physical path.
Parameters
The following parameters are available in the iis_virtual_directory
type.
name
namevar
The name of the virtual directory to manage
provider
The specific backend to use for this iis_virtual_directory
resource. You will seldom need to specify this --- Puppet
will usually discover the appropriate provider for your platform.
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.
v10.0.0 (2023-04-18)
Changed
- (CONT-782) - add puppet 8 support/Drop puppet 6 support #367 (jordanbreen28)
v9.0.0 (2023-02-10)
Changed
v8.1.1 (2022-10-03)
Fixed
- (MAINT) Drop support for Windows Server 2008 R2. #350 (jordanbreen28)
v8.1.0 (2022-03-14)
Added
- pdksync - (FM-8922) - Add Support for Windows 2022 #335 (david22swan)
Fixed
- (MODULES-11188) Fix physicalPath on apps and sites #336 (chelnak)
- MODULES-11188: trim physicalpath for iis_application resource #330 (adrianiurca)
v8.0.3 (2021-06-28)
Fixed
v8.0.2 (2021-05-10)
Fixed
v8.0.1 (2021-04-26)
Fixed
- (MODULES-10988) fix require_relative being not relative enough #316 (DavidS)
- (IAC-1497) - Removal of Unsupported Translate Module #314 (david22swan)
v8.0.0 (2021-03-02)
Changed
- pdksync - Remove Puppet 5 from testing and bump minimal version to 6.0.0 #308 (carabasdaniel)
v7.2.0 (2021-01-25)
Added
- Add support for Puppet 7 #302 (daianamezdrea)
- MODULES-10884 Allow a UNC path as the physical path of a web site #301 (palintir)
Fixed
- (IAC-991) - Removal of inappropriate terminology #293 (david22swan)
- (MODULES-10361) sort https bindings first #252 (pillarsdotnet)
v7.1.0 (2020-07-08)
Added
- Make iis application physicalpath optional #282 (adrianiurca)
Fixed
- (MODULES-10702) Make certificatestorename case insensitive. #280 (nicolasvan)
v7.0.1 (2020-03-31)
Fixed
- Fix provider enabledprotocols #272 (johnrogers00)
- MODULES-10419: Fix error message for net.tcp bindings. #254 (pillarsdotnet)
v7.0.0 (2020-01-21)
Changed
- (FM 8426) replace vendored code with pwshlib dependency #247 (david22swan)
Added
- (FM-8195) Convert to Litmus #249 (florindragos)
Fixed
- (MODULES-10362) handle authenticationinfo consistently #253 (pillarsdotnet)
v6.0.0 (2019-10-30)
The 6.0.0 release only contains maintenance work and should have been 5.0.1.
v5.0.0
Changed
- Increase the named pipe timeout to 180 seconds to prevent runs from failing waiting for a pipe to open (MODULES-9087).
- Update minimum Puppet version to 5.5.10 (MODULES-9349)
Fixed
- Ensure setting
iis_application_pool
state is idempotent (MODULES-7700). - Ensure setting
:managed_runtime_version
to''
results iniis_app_pool
being set toNo Managed Code
idempotently (MODULES-7820). - Ensure ability to specify timespans which include days, such as
1.05:00:00
([MODULES-8381]. (https://tickets.puppetlabs.com/browse/MODULES-8381)). Thanks, Trey Dockendorf (@treydock)! - Ensure iis_feature source property is used when provided in a manifest (MODULES-8254)
4.5.1 - 2019-03-02
Added
- Windows Server 2019 added to supported OS list (FM-7693)
Fixed
- Ensure removal of virtual directories is idempotent (MODULES-6080).
- Case sensitive path comparisons (MODULES-8346)
- Virtual directories did not correct config drift (MODULES-6061)
4.5.0 - 2018-10-23
Fixed
iis_application
cannot manage two applications with the same name under different web sites (MODULES-5493)applicationname
parameter cannot start with '/' character. Fixed as a by product of MODULES-5493.- Removing an IIS feature using the module results in an error. (MODULES-7174). Thanks Brian Fekete (@bFekete).
Changed
- The direction of slashes used in the title of an
iis_application
resource no longer matters. This is true both for the slash that separates thesitename
portion of the title from theapplicationname
name, and also for the path separator used if the application path is nested deeply in folders under the web site.
4.4.0 - 2018-09-05
Added
- Added additional valid binding protocols for
iis_application
. (MODULES-6947). Thanks Pedro Cunha (@Pedro-Cunha).
Fixed
- Fixed password escaping for the
iis_application_pool
andiis_virtual_directory
types. (MODULES-6870)
4.3.2 - 2018-06-13
Fixed
iis_website
, with a port binding of 443, does not start. (MODULES-7173)- Custom PowerShell host unreliable on some versions of Windows 2008 (MODULES-6928)
4.3.1 - 2018-03-22
Fixed
iis_website
causes state changes on each run whenensure
property is set topresent
. (MODULES-6673)iis_website
has port conflict on create if only host name is different in binding information (MODULES-6637)iis_site
does not supportauthenticationinfo
(MODULES-5229)
4.3.0 - 2018-01-26
Added
- Setting site limits for iis_site (MODULES-6144)
Fixed
iis_application
resource cannot manage applications in nested site folders (MODULES-6257)- Resources require a second run when iis feature is installed (MODULES-5465)
iis_site
binds to port 80 regardless of binding override on first run (MODULES-6385)- Puppet resource
iis_virtual_directory
doesn't fail with a meaningful error when sitename is omitted (MODULES-6166) - PowerShell manager code was updated to use named pipes to match the improvements in the puppetlabs-powershell module. (MODULES-6283)
4.2.1 - 2017-12-01
Added
- Added support for user_name and password when using a UNC physicalpath with
iis_virtual_directory
(MODULES-6195)
Fixed
- IIS physicalpath regex doesn't match UNC paths (MODULES-5264)
- IIS identity information is applied to application pool every agent run (MODULES-5270)
- IIS virtual directory can't use UNC path (MODULES-5642)
- IIS module remove warning already initialized constant (MODULES-5954)
- IIS module cannot change application pool of existing
iis_application
(MODULES-6020) - IIS
iis_virtual_directory
calls update after destroy (MODULES-6062) - IIS
iis_site
applicationpool does not allow valid characters (MODULES-6069)
4.2.0 - 2017-11-10
Added
- Added support for IIS 10 (Server 2016) (MODULES-5801)
- Added support for Server 2016 Core (MODULES-5803)
- Added a GitHub Pull Request template to help community submissions
4.1.2 - 2017-11-04
Fixed
- Loosen restriction on names for
iis_site
(MODULES-5293) - Loosen restriction on name for
iis_application_pool
(MODULES-5626) - Loosen restriction on
iis_application
applicationname parameter (MODULES-5627) - Fix
iis_virtual_directory
idempotency (MODULES-5344) - Add support for net.pipe protocol to
iis_site
(MODULES-5521)
4.1.1 - 2017-09-26
Added
- Enabled
iis_site
preleoadenabled (MODULES-5576) - Added 'No Managed Code' value to managed_runtime_version in
iis_site
(MODULES-5381)
Fixed
- Allow valid characters in title and name for
iis_site
(MODULES-5443)
4.1.0 - 2017-08-18
Added
- Added ability to update physical path and application pool for sites (MODULES-5125)
- Added testing of module on Puppet 5 (MODULES-5187)
- Added more acceptance testing of Application Pool settings (MODULES-5195)
- Added
iis_virtual_directory
to README (MODULES-5433) - Updated metadata to add support Puppet 5 (MODULES-5144)
Fixed
- Removed redundant ordering in README examples
- Fixed various formatting issues in README (MODULES-5433)
- Fixed certificate thumbprints to be case insensitive and handle nil values (MODULES-5259)
- Fixed
iis_application_pool
settings not being idempotent (MODULES-5169) - Fixed
iis_site
settings not being idempotent (MODULES-5429)
4.0.0 - 2017-06-05
Added
- Added support for Windows Server 2008 R2 (IIS 7.5) (MODULES-4484, MODULES-4378)
iis_site
autorequires aiis_application_pool
resource (MODULES-4297)- Added Types/Providers
iis_application
(MODULES-3050)iis_virtual_directory
(MODULES-3053)
- Added MIGRATION.md for migrating the IIS module from voxpupuli to puppetlabs
Fixed
- Fixed minor typo in the
iis_feature
provider - Fix error message for SSL settings on HTTP binding (MODULES-4762)
- Update documentation for new types and providers (MODULES-4752, MODULES-4220, MODULES-4564, MODULES-4976)
- Fix testing the
iis_feature
provider (MODULES-4818)
Removed
- Removed the usage of APPCMD
0.1.0 - 2017-03-16
Added
- Added
iis_version
fact - Added Types/Providers
iis_application_pool
(MODULES-4185, MODULES-4220)iis_site
(MODULES-3049, MODULES-3887)iis_feature
(MODULES-4434)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/pwshlib (>= 0.4.0 < 2.0.0)
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-iis
- Module version:
- 10.0.0
- Scan initiated:
- April 18th 2023, 2:40:45
- 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