ansible-collections / dellemc.os10

GNU General Public License v3.0
37 stars 49 forks source link

os10_snmp not provisioning all snmp commands #85

Open MarkOtii76 opened 3 years ago

MarkOtii76 commented 3 years ago
SUMMARY

Not all "snmp-server enable traps" commands where executed

ISSUE TYPE
COMPONENT NAME
Collection        Version
----------------- -------
ansible.netcommon 1.4.1
dellemc.os10      1.1.1
ANSIBLE VERSION
ansible 2.10.10
  config file = /home/ansible/ansible/ansible.cfg
  configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/ansible/.local/lib/python3.8/site-packages/ansible
  executable location = /home/ansible/.local/bin/ansible
  python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]
CONFIGURATION
DEFAULT_HOST_LIST(/home/ansible/ansible/ansible.cfg) = ['/home/ansible/ansible/hosts']
PERSISTENT_COMMAND_TIMEOUT(/home/ansible/ansible/ansible.cfg) = 60
OS / ENVIRONMENT
STEPS TO REPRODUCE
---
# file: playbook.yaml

# Global configuration of all Dell OS10 based switches

- hosts: dell_os10
  connection: network_cli
  collections:
    - dellemc.os10
  roles:
    - os10_snmp

All trap categories are set to true

---
# file: group_vars/dell_os10/os10_snmp.yml

os10_snmp:
    snmp_contact: "xx@xx.dom"
    snmp_location: "location"
    snmp_vrf: management
    snmp_community:
      - name: xxx
        access_mode: ro
        state: present
      - name: xxx-rw
        access_mode: rw
        state: present
    snmp_traps:
      - name: all
        state: present
    snmp_host:
      - ip: 10.0.0.1
        communitystring: xxx
        version: "2c"
        trap_categories:
          dom: true
          entity: true
          envmon: true
          lldp: true
          snmp: true
        state: present
EXPECTED RESULTS
SW01# show running-configuration snmp
!
snmp-server community xxx ro
snmp-server community xxx-rw rw
snmp-server contact xx@xx.dom
snmp-server enable traps lldp rem-tables-change
snmp-server enable traps entity
snmp-server enable traps envmon fan
snmp-server enable traps envmon power-supply
snmp-server enable traps envmon temperature
snmp-server enable traps snmp authentication
snmp-server enable traps snmp warmStart
snmp-server enable traps snmp coldStart
snmp-server enable traps snmp linkDown
snmp-server enable traps snmp linkUp
snmp-server enable traps dom temperature
snmp-server enable traps dom voltage
snmp-server enable traps dom rx-power
snmp-server enable traps dom tx-power
snmp-server enable traps dom bias
snmp-server host 10.0.0.1 traps version 2c xxx dom entity envmon lldp snmp
snmp-server location location
snmp-server vrf management
ACTUAL RESULTS
SW01# show running-configuration snmp
!
snmp-server community xxx ro
snmp-server community xxx-rw rw
snmp-server contact xx@xx.dom
snmp-server enable traps snmp authentication
snmp-server enable traps snmp linkDown
snmp-server enable traps snmp linkUp
snmp-server enable traps envmon fan
snmp-server enable traps envmon power-supply
snmp-server enable traps envmon temperature
snmp-server host 10.0.0.1 traps version 2c xxx dom entity envmon lldp snmp
snmp-server location location
snmp-server vrf management

The following commands are missing:

snmp-server enable traps lldp rem-tables-change
snmp-server enable traps entity
snmp-server enable traps snmp warmStart
snmp-server enable traps snmp coldStart
snmp-server enable traps dom temperature
snmp-server enable traps dom voltage
snmp-server enable traps dom rx-power
snmp-server enable traps dom tx-power
snmp-server enable traps dom bias
ansible@ansible:~/ansible$ ansible-playbook playbook.yml --ask-vault-pass -v
Using /home/ansible/ansible/ansible.cfg as config file
Vault password:

PLAY [dell_os10] ***************************************************************************************
TASK [Gathering Facts] *********************************************************************************
ok: [SW01]

TASK [dellemc.os10.os10_snmp : Generating SNMP configuration for os10] *********************************
skipping: [SW01] => {"changed": false, "skip_reason": "Conditional result was False"}

TASK [dellemc.os10.os10_snmp : Provisioning SNMP configuration for os10] *******************************
changed: [SW01] => {"changed": true, "commands": ["snmp-server enable traps snmp authentication", "snmp-server enable traps snmp linkDown", "snmp-server enable traps snmp linkUp", "snmp-server enable traps envmon fan", "snmp-server enable traps envmon power-supply", "snmp-server enable traps envmon temperature", "snmp-server host 10.0.0.1 traps version 2c xxx dom entity envmon lldp snmp", "snmp-server location location", "commit"], "saved": false, "updates": ["snmp-server enable traps snmp authentication", "snmp-server enable traps snmp linkDown", "snmp-server enable traps snmp linkUp", "snmp-server enable traps envmon fan", "snmp-server enable traps envmon power-supply", "snmp-server enable traps envmon temperature", "snmp-server host 10.0.0.1 traps version 2c xxx dom entity envmon lldp snmp", "snmp-server location location", "commit"]}

PLAY RECAP *********************************************************************************************
SW01                   : ok=2    changed=1    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0
ChristopherBorn commented 9 months ago

The following in the group vars also produces absolutely no output.

os10_snmp:
  snmp_contact: "{{ snmp_contact }}"
  snmp_location: "{{ customer }}"
  snmp_community:
    - name: "{{ vault_snmp_community }}"
      access_mode: ro
      state: present
  snmp_view:
    - name: "MonitoringView"
      oid: "1.3.6.1"
      include: true
      state: present
  snmp_host:
    - ip: "{{ snmp_server }}"
      version: 3
      security_level: priv
      security_name: "MonitoringUser"
      state: present
  snmp_group:
    - name: "MonitoringGroup"
      version: 3
      security_level: priv
      state: present
      read_view: 
        name: "MonitoringView"
        state: present
  snmp_user:
    - name: "MonitoringUser"
      group: "MonitoringGroup"
      version: 3
      authentication:
        localized: false
        algorithm: sha
        password: "{{ vault_snmp_password }}"
        encryption: 
          algorithm: aes
          password: "{{ vault_snmp_password }}"
      remote:
        ip: "{{ snmp_server }}"
      state: present
os10_users:
  - username: "{{ ansible_user }}"
    password: "{{ ansible_password }}"
    role: sysadmin
    state: present
  - username: "{{ support_user }}"
    password: "{{ support_password }}"
    role: netoperator
    state: present