community.general/lib/ansible/modules/windows/win_firewall_rule.py

127 lines
3.6 KiB
Python
Raw Normal View History

2015-03-16 10:34:07 +00:00
#!/usr/bin/env python
# (c) 2014, Timothy Vandenbrande <timothy.vandenbrande@gmail.com>
#
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
ANSIBLE_METADATA = {'metadata_version': '1.0',
'status': ['preview'],
'supported_by': 'community'}
2016-12-06 10:35:25 +00:00
DOCUMENTATION = r'''
2015-03-16 10:34:07 +00:00
---
module: win_firewall_rule
2015-07-02 08:00:33 +00:00
version_added: "2.0"
2015-03-16 10:34:07 +00:00
author: Timothy Vandenbrande
short_description: Windows firewall automation
description:
- Allows you to create/remove/update firewall rules
options:
enabled:
description:
- Is this firewall rule enabled or disabled
default: 'yes'
choices: [ 'no', 'yes' ]
aliases: [ 'enable' ]
2015-03-16 10:34:07 +00:00
state:
description:
- Should this rule be added or removed
2015-03-16 10:34:07 +00:00
default: "present"
choices: ['present', 'absent']
name:
description:
- The rules name
2015-03-16 10:34:07 +00:00
required: true
direction:
description:
- Is this rule for inbound or outbound traffic
2015-03-16 10:34:07 +00:00
required: true
choices: ['in', 'out']
2015-03-16 10:34:07 +00:00
action:
description:
- What to do with the items this rule is for
2015-03-16 10:34:07 +00:00
required: true
choices: ['allow', 'block', 'bypass']
2015-03-16 10:34:07 +00:00
description:
description:
- Description for the firewall rule
2015-03-16 10:34:07 +00:00
localip:
description:
- The local ip address this rule applies to
default: 'any'
2015-03-16 10:34:07 +00:00
remoteip:
description:
- The remote ip address/range this rule applies to
default: 'any'
2015-03-16 10:34:07 +00:00
localport:
description:
- The local port this rule applies to
2015-03-16 10:34:07 +00:00
remoteport:
description:
- The remote port this rule applies to
2015-03-16 10:34:07 +00:00
program:
description:
- The program this rule applies to
2015-03-16 10:34:07 +00:00
service:
description:
- The service this rule applies to
2015-03-16 10:34:07 +00:00
protocol:
description:
- The protocol this rule applies to
default: 'any'
profiles:
description:
- The profile this rule applies to
default: 'domain,private,public'
aliases: [ 'profile' ]
2015-03-16 10:34:07 +00:00
force:
description:
- Replace any existing rule by removing it first.
default: 'no'
choices: [ 'no', 'yes' ]
notes:
- The implementation uses C(netsh advfirewall) underneath, a pure-Powershell
reimplementation would be more powerful.
- Modifying existing firewall rules is not possible, the module does allow
replacing complete rules based on name, but that works by removing the
existing rule completely, and recreating it with provided information
(when using C(force)).
2015-03-16 10:34:07 +00:00
'''
EXAMPLES = r'''
- name: Firewall rule to allow SMTP on TCP port 25
win_firewall_rule:
name: SMTP
localport: 25
action: allow
direction: in
protocol: tcp
state: present
enabled: yes
2015-03-16 10:34:07 +00:00
- name: Firewall rule to allow RDP on TCP port 3389
win_firewall_rule:
name: Remote Desktop
localport: 3389
action: allow
direction: in
protocol: tcp
profiles: private
state: present
enabled: yes
'''