Hi,

I am new to this community and new ansible as so please excuse me of my 
stupid mistakes.

referring to peter's webinar i am trying to collect device information 
using reguler expressions.it seems it through me error as bellow:-

TASK [network_facts : set hostname fact] 
********************************************************************************************************************
task path: /etc/ansible/roles/network_facts/tasks/ios.yaml:14
fatal: [8.8.8.8]: FAILED! => {
    "msg": "Unexpected templating type error occurred on ({{ 
output.stdout[2] | regex_search('^hostname (.+)$', '\\\\1') | first }}): 
'NoneType' object is not iterable"
}
fatal: [5.5.5.5]: FAILED! => {
    "msg": "Unexpected templating type error occurred on ({{ 
output.stdout[2] | regex_search('^hostname (.+)$', '\\\\1') | first }}): 
'NoneType' object is not iterable"
}
        to retry, use: --limit @/etc/ansible/facts.retry

PLAY RECAP 
**************************************************************************************************************************************************
5.5.5.5                    : ok=2    changed=0    unreachable=0    
failed=1   
8.8.8.8                    : ok=2    changed=0    unreachable=0    
failed=1    

i can confirm that ansible is able to login on the device and is able 
excute the required commend to collect the information but it seems reguler 
expression is not correct.

Here is my play book:

---
- name: collect device facts and display OS version
  hosts: "{{ inventory | default('all') }}"
  gather_facts: no
  connection: local

  roles:
    - { role: network_facts }

  tasks:
    - debug: msg="Node {{ hostname }} is type {{ device_os }} running 
software version {{ version }}"

================================================================================
below is task yml file:-
---
- name: collect output from ios device
  ios_command:
    commands:
      - show version
      - show interfaces
      - show running-config
    provider: "{{ ios_provider }}"
  register: output

# common facts
#

- name: set hostname fact
  set_fact: hostname="{{ output.stdout[2] | regex_search('^hostname (.+)$', 
'\\1') | first }}"

- name: set interfaces fact
  set_fact: interfaces="{{ output.stdout[1] | 
regex_findall('^[L|G|A|B|C|D||M|N|P|T|V]\\S+') }}"

- name: set version fact
  set_fact: version="{{ output.stdout[0] | regex_search('Version (\\S+),', 
'\\1') | first }}"

- name: set config fact
  set_fact: config="{{ output.stdout[2] }}"

- name: set config_lines fact
  set_fact: config_lines="{{ config.split('\n') }}"

Regards/Surjeet
 

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/d674db41-aaaf-400d-99a6-1282c156de10%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to