win_feature – Installs and uninstalls Windows Features on Windows Server — Ansible Documentation

- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# win_feature – Installs and uninstalls Windows Features on Windows Server

- Synopsis
- Parameters
- See Also
- Examples
- Return Values
- Status

## Synopsis

- Installs or uninstalls Windows Roles or Features on Windows Server.
- This module uses the Add/Remove-WindowsFeature Cmdlets on Windows 2008 R2 and Install/Uninstall-WindowsFeature Cmdlets on Windows 2012, which are not available on client os machines.

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
include_management_tools boolean | Choices: no ← yes | Adds the corresponding management tools to the specified feature. Not supported in Windows 2008 R2 and will be ignored.
include_sub_features boolean | Choices: no ← yes | Adds all subfeatures of the specified feature.
name list / required |  | Names of roles or features to install as a single feature or a comma-separated list of features. To list all available features use the PowerShell command `Get-WindowsFeature`.
source string |  | Specify a source to install the feature from. Not supported in Windows 2008 R2 and will be ignored. Can either be `{driveletter}:\sources\sxs` or `\\{IP}\share\sources\sxs`.
state string | Choices: absent present ← | State of the features or roles on the system.

## See Also

See also

win_chocolatey – Manage packages using chocolatey
  The official documentation on the win_chocolatey module.
win_package – Installs/uninstalls an installable package
  The official documentation on the win_package module.

## Examples

    - name: Install IIS (Web-Server only)
      win_feature:
        name: Web-Server
        state: present

    - name: Install IIS (Web-Server and Web-Common-Http)
      win_feature:
        name:
        - Web-Server
        - Web-Common-Http
        state: present

    - name: Install NET-Framework-Core from file
      win_feature:
        name: NET-Framework-Core
        source: C:\Temp\iso\sources\sxs
        state: present

    - name: Install IIS Web-Server with sub features and management tools
      win_feature:
        name: Web-Server
        state: present
        include_sub_features: yes
        include_management_tools: yes
      register: win_feature

    - name: Reboot if installing Web-Server feature requires it
      win_reboot:
      when: win_feature.reboot_required

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
exitcode string | always | The stringified exit code from the feature installation/removal command. Sample: Success
feature_result complex | success | List of features that were installed or removed.
| display_name string | always | Feature display name. Sample: Telnet Client
| id integer | always | A list of KB article IDs that apply to the update. Sample: 44
| message list of strings | always | Any messages returned from the feature subsystem that occurred during installation or removal of this feature.
| reboot_required boolean | always | True when the target server requires a reboot as a result of installing or removing this feature. Sample: True
| restart_needed boolean | always | DEPRECATED in Ansible 2.4 (refer to `reboot_required` instead). True when the target server requires a reboot as a result of installing or removing this feature. Sample: True
| skip_reason string | always | The reason a feature installation or removal was skipped. Sample: NotSkipped
| success boolean | always | If the feature installation or removal was successful. Sample: True
reboot_required boolean | success | True when the target server requires a reboot to complete updates (no further updates can be installed until after a reboot). Sample: True

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Paul Durivage (@angstwad)
- Trond Hindenes (@trondhindenes)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.