# snmp_facts – Retrieve facts for a device using SNMP

- Synopsis

- Requirements

- Parameters

- Examples

- Return Values

- Status

## 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 if version is v3.
community string |  | The SNMP community string, required if version is v2/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 version 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
      snmp_facts:
        host: '{{ inventory_hostname }}'
        version: v2c
        community: public
      delegate_to: local

    - name: Gather facts using SNMP version 3
      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 | 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: Me <me@example.org>
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

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Patrick Ogenstad (@ogenstad)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.