Last active
October 31, 2015 01:05
-
-
Save jtdub/9fddec6d846585e03f00 to your computer and use it in GitHub Desktop.
sample playbook
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- name: test command module as audit | |
hosts: netdevices | |
gather_facts: False | |
connection: local | |
tasks: | |
- name: gather facts | |
ntc_show_command: | |
connection: ssh | |
platform: "{{ platform }}" | |
username: "{{ username }}" | |
password: "{{ password }}" | |
host: "{{ inventory_hostname }}" | |
command: show ip interface brief | |
register: facts | |
- debug: var={{ item }} | |
with_items: facts.response | |
when: item.intf == 'Loopback0' | |
register: loopbacks | |
- debug: var="{{ loopbacks }}" |
Author
jtdub
commented
Oct 31, 2015
---
- name: GET STRUCTURED DATA BACK FROM CLI DEVICES
hosts: cisco_nxos
connection: local
gather_facts: False
tasks:
- name: GET DATA
ntc_show_command:
connection=ssh
platform=cisco_nxos
command='show vlan'
host={{ inventory_hostname }}
username={{ username }}
password={{ password }}
register: facts
- debug: var=item
with_items: facts.response
when: item.vlan_id == "100"
register: vlans
- debug: var=vlans
resulting in this...don't mind my error for now :)
PLAY [GET STRUCTURED DATA BACK FROM CLI DEVICES] ******************************
TASK: [GET DATA] **************************************************************
failed: [n9k1] => {"failed": true, "parsed": false}
SSH connection established to 68.170.147.164:22
Interactive SSH session established
Traceback (most recent call last):
File "/home/cisco/.ansible/tmp/ansible-tmp-1446252999.77-14248881251725/ntc_show_command", line 1853, in <module>
main()
File "/home/cisco/.ansible/tmp/ansible-tmp-1446252999.77-14248881251725/ntc_show_command", line 219, in main
password=password
File "/usr/local/lib/python2.7/dist-packages/netmiko/ssh_dispatcher.py", line 54, in ConnectHandler
return ConnectionClass(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/netmiko/base_connection.py", line 45, in __init__
self.session_preparation()
File "/usr/local/lib/python2.7/dist-packages/netmiko/base_connection.py", line 61, in session_preparation
self.set_base_prompt()
File "/usr/local/lib/python2.7/dist-packages/netmiko/base_connection.py", line 187, in set_base_prompt
raise ValueError("Router prompt not found: {0}".format(prompt))
ValueError: Router prompt not found:
ok: [n9k2]
TASK: [debug var=item] ********************************************************
skipping: [n9k2] => (item={'status': 'active', 'name': 'default', 'vlan_id': '1'})
ok: [n9k2] => (item={'status': 'active', 'name': 'test_vlan', 'vlan_id': '100'}) => {
"item": {
"name": "test_vlan",
"status": "active",
"vlan_id": "100"
},
"var": {
"item": {
"name": "test_vlan",
"status": "active",
"vlan_id": "100"
}
}
}
skipping: [n9k2] => (item={'status': 'active', 'name': 'vlan_145_demo', 'vlan_id': '145'})
TASK: [debug var=vlans] *******************************************************
ok: [n9k2] => {
"var": {
"vlans": {
"changed": false,
"msg": "All items completed",
"results": [
{
"changed": false,
"skipped": true
},
{
"invocation": {
"module_args": "var=item",
"module_name": "debug"
},
"item": {
"name": "test_vlan",
"status": "active",
"vlan_id": "100"
},
"var": {
"item": {
"name": "test_vlan",
"status": "active",
"vlan_id": "100"
}
},
"verbose_always": true
},
{
"changed": false,
"skipped": true
}
]
}
}
}
PLAY RECAP ********************************************************************
to retry, use: --limit @/home/cisco/je-test.retry
n9k1 : ok=0 changed=0 unreachable=0 failed=1
n9k2 : ok=3 changed=0 unreachable=0 failed=0
---
- name: test command module as audit
hosts: netdevices
gather_facts: False
connection: local
tasks:
- name: gather facts
ntc_show_command:
connection: ssh
platform: "{{ platform }}"
username: "{{ username }}"
password: "{{ password }}"
host: "{{ inventory_hostname }}"
command: show ip interface brief
register: facts
- set_fact:
loopbacks: "{{ item }}"
with_items: facts.response
when: item.intf == 'Loopback0'
- debug: var=loopbacks
(ntc)jtdub-macbook:ntc-ansible jtdub$ ansible-playbook -i test-hosts cmd-test.yml
PLAY [test command module as audit] *******************************************
TASK: [gather facts] **********************************************************
ok: [darkstar]
ok: [core1a]
TASK: [set_fact ] *************************************************************
skipping: [darkstar] => (item={u'status': u'down', u'intf': u'Async1', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'administratively down', u'intf': u'Vlan1', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'FastEthernet0', u'ipaddr': u'70.121.134.31', u'proto': u'up'})
skipping: [core1a] => (item={u'status': u'up', u'intf': u'Vlan2', u'ipaddr': u'172.16.0.65', u'proto': u'down'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'FastEthernet1', u'ipaddr': u'172.16.0.34', u'proto': u'up'})
skipping: [core1a] => (item={u'status': u'up', u'intf': u'Vlan3', u'ipaddr': u'172.16.1.129', u'proto': u'up'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'FastEthernet2', u'ipaddr': u'unassigned', u'proto': u'up'})
skipping: [core1a] => (item={u'status': u'up', u'intf': u'Vlan50', u'ipaddr': u'172.16.1.1', u'proto': u'up'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'FastEthernet3', u'ipaddr': u'unassigned', u'proto': u'up'})
skipping: [core1a] => (item={u'status': u'up', u'intf': u'Vlan51', u'ipaddr': u'172.16.1.65', u'proto': u'down'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'FastEthernet4', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'up', u'intf': u'Vlan52', u'ipaddr': u'172.16.1.193', u'proto': u'down'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'FastEthernet5', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'FastEthernet6', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'up', u'intf': u'FastEthernet1/0/1', u'ipaddr': u'172.16.0.33', u'proto': u'up'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'FastEthernet7', u'ipaddr': u'unassigned', u'proto': u'up'})
skipping: [core1a] => (item={u'status': u'up', u'intf': u'FastEthernet1/0/2', u'ipaddr': u'unassigned', u'proto': u'up'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'FastEthernet8', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'up', u'intf': u'FastEthernet1/0/3', u'ipaddr': u'unassigned', u'proto': u'up'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'FastEthernet9', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/4', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'up', u'intf': u'FastEthernet1/0/5', u'ipaddr': u'unassigned', u'proto': u'up'})
ok: [darkstar] => (item={u'status': u'up', u'intf': u'Loopback0', u'ipaddr': u'172.16.0.2', u'proto': u'up'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/6', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'NVI0', u'ipaddr': u'172.16.0.2', u'proto': u'up'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/7', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'Tunnel0', u'ipaddr': u'172.16.0.34', u'proto': u'up'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/8', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'Vlan1', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/9', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'Vlan2', u'ipaddr': u'172.16.2.1', u'proto': u'up'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/10', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'Vlan3', u'ipaddr': u'172.16.2.33', u'proto': u'up'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/11', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [darkstar] => (item={u'status': u'up', u'intf': u'Vlan4', u'ipaddr': u'172.16.2.129', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/12', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/13', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/14', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/15', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/16', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/17', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/18', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/19', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/20', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/21', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'FastEthernet1/0/22', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'up', u'intf': u'FastEthernet1/0/23', u'ipaddr': u'unassigned', u'proto': u'up'})
skipping: [core1a] => (item={u'status': u'up', u'intf': u'FastEthernet1/0/24', u'ipaddr': u'unassigned', u'proto': u'up'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'GigabitEthernet1/0/1', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'down', u'intf': u'GigabitEthernet1/0/2', u'ipaddr': u'unassigned', u'proto': u'down'})
skipping: [core1a] => (item={u'status': u'up', u'intf': u'Port-channel11', u'ipaddr': u'unassigned', u'proto': u'up'})
ok: [core1a] => (item={u'status': u'up', u'intf': u'Loopback0', u'ipaddr': u'172.16.0.1', u'proto': u'up'})
TASK: [debug var=loopbacks] ***************************************************
ok: [darkstar] => {
"loopbacks": {
"intf": "Loopback0",
"ipaddr": "172.16.0.2",
"proto": "up",
"status": "up"
}
}
ok: [core1a] => {
"loopbacks": {
"intf": "Loopback0",
"ipaddr": "172.16.0.1",
"proto": "up",
"status": "up"
}
}
PLAY RECAP ********************************************************************
core1a : ok=3 changed=0 unreachable=0 failed=0
darkstar : ok=3 changed=0 unreachable=0 failed=0
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment