mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-08 14:20:04 -07:00
Module listen ports facts extend output (#4953)
* Initial Rework of netstat and ss to include additional information. State, foreign address, process. * Fixed sanity tests. Python 2 compatible code. pylint errors resolved. * Sanity tests. ss_parse fix minor error I created before. * Rename variable for clarity * Python2 rsplit takes no keyword argument. -> remove keyword argument * Generic improvments for split_pid_name. Added changelog * Sanity Test (no type hints for python2.7) * add include_non_listening param. Add param to test. Add documentation. Only return state and foreign_address when include_non_listening * Update changelogs/fragments/4953-listen-ports-facts-extend-output.yaml Co-authored-by: Felix Fontein <felix@fontein.de> * Add info to changelog fragment. Clarify documentation. * The case where we have multiple entries in pids for udp eg: users:(("rpcbind",pid=733,fd=5),("systemd",pid=1,fd=30)) is not in the tests. So roll back to previous approach where this is covered. Fix wrong if condition for include_non_listening. * Rewrite documentation and formatting. * Last small documentation adjustments. * Update parameters to match description. * added test cases to check if include_non_listening is set to no by default. And test if ports and foreign_address exists if set to yes * undo rename from address to local_address -> breaking change * Replace choice with bool, as it is the correct fit here * nestat distinguishes between tcp6 and tcp output should always be tcp * Minor adjustments in the docs (no -> false, is set to yes -> true) Co-authored-by: Paul-Kehnel <paul.kehnel@ocean.ibm.com> Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
9f3841703f
commit
c273498a03
3 changed files with 155 additions and 62 deletions
|
@ -58,14 +58,23 @@
|
|||
listen_ports_facts:
|
||||
when: ansible_os_family == "RedHat" or ansible_os_family == "Debian"
|
||||
|
||||
- name: Gather listening ports facts explicitly via netstat
|
||||
- name: check that the include_non_listening parameters ('state' and 'foreign_address') are not active in default setting
|
||||
assert:
|
||||
that:
|
||||
- ansible_facts.tcp_listen | selectattr('state', 'defined') | list | length == 0
|
||||
- ansible_facts.tcp_listen | selectattr('foreign_address', 'defined') | list | length == 0
|
||||
when: ansible_os_family == "RedHat" or ansible_os_family == "Debian"
|
||||
|
||||
- name: Gather listening ports facts explicitly via netstat and include_non_listening
|
||||
listen_ports_facts:
|
||||
command: 'netstat'
|
||||
include_non_listening: 'yes'
|
||||
when: (ansible_os_family == "RedHat" and ansible_distribution_major_version|int < 7) or ansible_os_family == "Debian"
|
||||
|
||||
- name: Gather listening ports facts explicitly via ss
|
||||
- name: Gather listening ports facts explicitly via ss and include_non_listening
|
||||
listen_ports_facts:
|
||||
command: 'ss'
|
||||
include_non_listening: 'yes'
|
||||
when: ansible_os_family == "RedHat" and ansible_distribution_major_version|int >= 7
|
||||
|
||||
- name: check for ansible_facts.udp_listen exists
|
||||
|
@ -78,6 +87,13 @@
|
|||
that: ansible_facts.tcp_listen is defined
|
||||
when: ansible_os_family == "RedHat" or ansible_os_family == "Debian"
|
||||
|
||||
- name: check that the include_non_listening parameter 'state' and 'foreign_address' exists
|
||||
assert:
|
||||
that:
|
||||
- ansible_facts.tcp_listen | selectattr('state', 'defined') | list | length > 0
|
||||
- ansible_facts.tcp_listen | selectattr('foreign_address', 'defined') | list | length > 0
|
||||
when: ansible_os_family == "RedHat" or ansible_os_family == "Debian"
|
||||
|
||||
- name: check TCP 5556 is in listening ports
|
||||
assert:
|
||||
that: 5556 in ansible_facts.tcp_listen | map(attribute='port') | sort | list
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue