listen_ports_facts – Gather facts on processes listening on TCP and UDP ports

From Get docs
Ansible/docs/2.9/modules/listen ports facts module


listen_ports_facts – Gather facts on processes listening on TCP and UDP ports

New in version 2.9.


Synopsis

  • Gather facts on processes listening on TCP and UDP ports.

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

Authors

  • Nathan Davison (@ndavison)

Hint

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


© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/listen_ports_facts_module.html