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

Note

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

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

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

Hashing algorithm.

Required if version is v3.

Choices:

  • md5

  • sha

level

string

Authentication level.

Required if version is v3.

Choices:

  • authNoPriv

  • authPriv

privacy

string

Encryption algorithm.

Required if level is authPriv.

Choices:

  • aes

  • des

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

SNMP Version to use, v2, v2c or v3.

Choices:

  • v2

  • v2c

  • 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

Description

ansible_all_ipv4_addresses

list / elements=string

List of all IPv4 addresses.

Returned: success

Sample: [“127.0.0.1”, “172.17.0.1”]

ansible_interfaces

dictionary

Dictionary of each network interface and its metadata.

Returned: success

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

The textual identification of the contact person for this managed node, together with information on how to contact this person.

Returned: success

Sample: “Me \u003cme@example.org\u003e”

ansible_sysdescr

string

A textual description of the entity.

Returned: success

Sample: “Linux ubuntu-user 4.4.0-93-generic”

ansible_syslocation

string

The physical location of this node (e.g., telephone closet, 3rd floor).

Returned: success

Sample: “Sitting on the Dock of the Bay”

ansible_sysname

string

An administratively-assigned name for this managed node.

Returned: success

Sample: “ubuntu-user”

ansible_sysobjectid

string

The vendor’s authoritative identification of the network management subsystem contained in the entity.

Returned: success

Sample: “1.3.6.1.4.1.8072.3.2.10”

ansible_sysuptime

integer

The time (in hundredths of a second) since the network management portion of the system was last re-initialized.

Returned: success

Sample: 42388

Authors

  • Patrick Ogenstad (@ogenstad)