community.general.snmp_facts – Retrieve facts for a device using SNMP

Note

This plugin is part of the community.general collection (version 1.3.6).

To install it use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.snmp_facts.

Synopsis

  • Retrieve facts for a device using SNMP, the facts will be inserted to the ansible_facts key.

Requirements

The below requirements are needed on the host that executes this module.

  • pysnmp

Parameters

Parameter Choices/Defaults Comments
authkey
string
Authentication key.
Required version is v3.
community
string
The SNMP community string, required if version is v2 or v2c.
host
string / required
Set to target SNMP server (normally {{ inventory_hostname }}).
integrity
string
    Choices:
  • md5
  • sha
Hashing algorithm.
Required if version is v3.
level
string
    Choices:
  • authNoPriv
  • authPriv
Authentication level.
Required if version is v3.
privacy
string
    Choices:
  • aes
  • des
Encryption algorithm.
Required if level is authPriv.
privkey
string
Encryption key.
Required if level is authPriv.
username
string
Username for SNMPv3.
Required if version is v3.
version
string / required
    Choices:
  • v2
  • v2c
  • v3
SNMP Version to use, v2, v2c or v3.

Examples

- name: Gather facts with SNMP version 2
  community.general.snmp_facts:
    host: '{{ inventory_hostname }}'
    version: v2c
    community: public
  delegate_to: local

- name: Gather facts using SNMP version 3
  community.general.snmp_facts:
    host: '{{ inventory_hostname }}'
    version: v3
    level: authPriv
    integrity: sha
    privacy: aes
    username: snmp-user
    authkey: abc12345
    privkey: def6789
  delegate_to: localhost

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
ansible_all_ipv4_addresses
list / elements=string
success
List of all IPv4 addresses.

Sample:
['127.0.0.1', '172.17.0.1']
ansible_interfaces
dictionary
success
Dictionary of each network interface and its metadata.

Sample:
{'1': {'adminstatus': 'up', 'description': '', 'ifindex': '1', 'ipv4': [{'address': '127.0.0.1', 'netmask': '255.0.0.0'}], 'mac': '', 'mtu': '65536', 'name': 'lo', 'operstatus': 'up', 'speed': '65536'}, '2': {'adminstatus': 'up', 'description': '', 'ifindex': '2', 'ipv4': [{'address': '192.168.213.128', 'netmask': '255.255.255.0'}], 'mac': '000a305a52a1', 'mtu': '1500', 'name': 'Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)', 'operstatus': 'up', 'speed': '1500'}}
ansible_syscontact
string
success
The textual identification of the contact person for this managed node, together with information on how to contact this person.

Sample:
ansible_sysdescr
string
success
A textual description of the entity.

Sample:
Linux ubuntu-user 4.4.0-93-generic
ansible_syslocation
string
success
The physical location of this node (e.g., `telephone closet, 3rd floor').

Sample:
Sitting on the Dock of the Bay
ansible_sysname
string
success
An administratively-assigned name for this managed node.

Sample:
ubuntu-user
ansible_sysobjectid
string
success
The vendor's authoritative identification of the network management subsystem contained in the entity.

Sample:
1.3.6.1.4.1.8072.3.2.10
ansible_sysuptime
integer
success
The time (in hundredths of a second) since the network management portion of the system was last re-initialized.

Sample:
42388


Authors

  • Patrick Ogenstad (@ogenstad)