Skip to content

Commit

Permalink
nmap inventory plugin: Add sudo nmap (#4506)
Browse files Browse the repository at this point in the history
* nmap.py: Add sudo nmap

* Update plugins/inventory/nmap.py

Change description of new plugin option adding version_added

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update plugins/inventory/nmap.py

Change boolean values of sudo option in example

Co-authored-by: Felix Fontein <felix@fontein.de>

* Create 4506-sudo-in-nmap-inv-plugin.yaml

* Fix typo in yaml format

* Update changelogs/fragments/4506-sudo-in-nmap-inv-plugin.yaml

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>

* Update changelogs/fragments/4506-sudo-in-nmap-inv-plugin.yaml

Co-authored-by: Felix Fontein <felix@fontein.de>

* Document default as false.

Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
(cherry picked from commit 3cce121)
  • Loading branch information
ottobits authored and patchback[bot] committed Apr 21, 2022
1 parent 12f2ba2 commit 0cadff4
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/4506-sudo-in-nmap-inv-plugin.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
minor_changes:
- nmap inventory plugin - add ``sudo`` option in plugin in order to execute ``sudo nmap`` so that ``nmap`` runs with elevated privileges (https://github.com/ansible-collections/community.general/pull/4506).
16 changes: 16 additions & 0 deletions plugins/inventory/nmap.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@
description: token that ensures this is a source file for the 'nmap' plugin.
required: True
choices: ['nmap', 'community.general.nmap']
sudo:
description: Set to C(true) to execute a C(sudo nmap) plugin scan.
version_added: 4.8.0
default: false
type: boolean
address:
description: Network IP or range of IPs to scan, you can use a simple range (10.2.2.15-25) or CIDR notation.
required: True
Expand Down Expand Up @@ -49,6 +54,13 @@
plugin: community.general.nmap
strict: False
address: 192.168.0.0/24
# a sudo nmap scan to fully use nmap scan power.
plugin: community.general.nmap
sudo: true
strict: False
address: 192.168.0.0/24
'''

import os
Expand Down Expand Up @@ -135,6 +147,10 @@ def parse(self, inventory, loader, path, cache=True):
if not user_cache_setting or cache_needs_update:
# setup command
cmd = [self._nmap]

if self._options['sudo']:
cmd.insert(0, 'sudo')

if not self._options['ports']:
cmd.append('-sP')

Expand Down

0 comments on commit 0cadff4

Please sign in to comment.