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

Note

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

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

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.
retries
integer
added in 2.3.0 of community.general
Maximum number of request retries, 0 retries means just a single request.
timeout
integer
added in 2.3.0 of community.general
Response timeout in seconds.
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)