listen_ports_facts – Gather facts on processes listening on TCP and UDP ports¶
New in version 2.9.
Examples¶
- name: Gather facts on listening ports
listen_ports_facts:
- name: TCP whitelist violation
debug:
msg: TCP port {{ item.port }} by pid {{ item.pid }} violates the whitelist
vars:
tcp_listen_violations: "{{ ansible_facts.tcp_listen | selectattr('port', 'in', tcp_whitelist) | list }}"
tcp_whitelist:
- 22
- 25
loop: "{{ tcp_listen_violations }}"
- name: List TCP ports
debug:
msg: "{{ ansible_facts.tcp_listen | map(attribute='port') | sort | list }}"
- name: List UDP ports
debug:
msg: "{{ ansible_facts.udp_listen | map(attribute='port') | sort | list }}"
- name: List all ports
debug:
msg: "{{ (ansible_facts.tcp_listen + ansible_facts.udp_listen) | map(attribute='port') | unique | sort | list }}"
Returned Facts¶
Facts returned by this module are added/updated in the hostvars host facts and can be referenced by name just like any other host fact. They do not need to be registered in order to use them.
| Fact | Returned | Description | |
|---|---|---|---|
|
tcp_listen
list
|
if TCP servers were found |
A list of processes that are listening on a TCP port.
|
|
|
address
string
|
always |
The address the server is listening on.
Sample:
0.0.0.0
|
|
|
name
string
|
if user permissions allow |
The name of the listening process.
Sample:
mysqld
|
|
|
pid
integer
|
always |
The pid of the listening process.
Sample:
1223
|
|
|
port
integer
|
always |
The port the server is listening on.
Sample:
3306
|
|
|
protocol
string
|
always |
The network protocol of the server.
Sample:
tcp
|
|
|
stime
string
|
always |
The start time of the listening process.
Sample:
Thu Feb 2 13:29:45 2017
|
|
|
user
string
|
always |
The user who is running the listening process.
Sample:
mysql
|
|
|
udp_listen
list
|
if UDP servers were found |
A list of processes that are listening on a UDP port.
|
|
|
address
string
|
always |
The address the server is listening on.
Sample:
0.0.0.0
|
|
|
name
string
|
if user permissions allow |
The name of the listening process.
Sample:
rsyslogd
|
|
|
pid
integer
|
always |
The pid of the listening process.
Sample:
609
|
|
|
port
integer
|
always |
The port the server is listening on.
Sample:
514
|
|
|
protocol
string
|
always |
The network protocol of the server.
Sample:
udp
|
|
|
stime
string
|
always |
The start time of the listening process.
Sample:
Thu Feb 2 13:29:45 2017
|
|
|
user
string
|
always |
The user who is running the listening process.
Sample:
root
|
|
Status¶
- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]
Authors¶
- Nathan Davison (@ndavison)
Hint
If you notice any issues in this documentation, you can edit this document to improve it.