Not sure it seems like it is looking for the filter. Have you used a collection before? Is the collections_path defined in the ansible.cfg?
On Mon, Jun 22, 2020 at 3:49 PM Jason <[email protected]> wrote: > This error shows: > fatal: [SW1]: FAILED! => {"msg": "template error while templating string: > no filter named 'clay584.genie.parse_genie'. String: {{ > neighbors['stdout'][0] | clay584.genie.parse_genie(command='show cdp > neighbors', os='ios') }}"} > > > This is the full playbook I am using: > --- > - name: Interface Descrpitions > hosts: uwioc-switches > gather_facts: no > connection: network_cli > collections: > - clay584.genie > vars: > ansible_python_interpreter: "{{ ansible_playbook_python }}" > tasks: > - name: Run show cdp neighbors > ios_command: > commands: > - show cdp neighbors > register: neighbors > # Using the Genie Filter Plugin from the Genie Parse Role > # Set pyats_neighbors as a dictionary > - name: Set fact with Genie Filter Plugin > set_fact: > pyats_neighbors: "{{ neighbors['stdout'][0] | > clay584.genie.parse_genie(command='show cdp neighbors', os='ios') }}" > > > Tried changing vars to set_facts too, but didn't work. > > On Monday, June 22, 2020 at 4:16:54 PM UTC-4, J C wrote: >> >> I am using the collection not the role. So it looks like this at the >> top. Had to add the interpreter variable because Ansible kept using Python >> 2 >> >> --- >> - name: Interface Descrpitions >> hosts: all >> gather_facts: no >> connection: network_cli >> collections: >> - clay584.genie >> vars: >> ansible_python_interpreter: "{{ ansible_playbook_python }}" >> >> On Mon, Jun 22, 2020 at 2:44 PM Jason <[email protected]> wrote: >> >>> Thanks alot. >>> >>> I have been getting this error for the past few days when trying to use >>> genie: >>> >>> fatal: [SW1]: FAILED! => { >>> "msg": "template error while templating string: no filter named >>> 'clay584.genie.parse_genie'. String: {{ neighbors['stdout'][0] | >>> clay584.genie.parse_genie(command='show cdp neighbors', os='ios') }}" >>> } >>> >>> *This is my playbook (what you sent but I needed to import the role >>> first):* >>> - hosts: uwioc-switches >>> gather_facts: no >>> tasks: >>> - name: Import role >>> include_role: >>> name: clay584.parse_genie >>> >>> - name: Run show cdp neighbors >>> ios_command: >>> commands: >>> - show cdp neighbors >>> register: neighbors >>> >>> # Using the Genie Filter Plugin from the Genie Parse Role >>> # Set pyats_neighbors as a dictionary >>> - name: Set fact with Genie >>> - name: Import role >>> include_role: >>> name: clay584.parse_genie >>> >>> - name: Run show cdp neighbors >>> ios_command: >>> commands: >>> - show cdp neighbors >>> register: neighbors >>> >>> # Using the Genie Filter Plugin from the Genie Parse Role >>> # Set pyats_neighbors as a dictionary >>> - name: Set fact with Genie Filter Plugin >>> set_fact: >>> pyats_neighbors: "{{ neighbors['stdout'][0] | >>> clay584.genie.parse_genie(command='show cdp neighbors', os='ios') }}" >>> >>> >>> - name: Add interface description >>> ios_interfaces: >>> config: >>> - name: "{{ item.value.local_interface }}" >>> description: "{{ item.value.device_id }} - {{ >>> item.value.port_id }}" >>> state: merged >>> loop: "{{ q('dict', pyats_neighbors.index) }}" >>> when: item.value.port_id is "AIR-AP280" >>> >>> My python version is 3.6.8 and Ansible is 2.9.9 >>> >>> I followed this guide to install the necessary libraries: >>> https://developer.cisco.com/codeexchange/github/repo/clay584/parse_genie/ >>> >>> >>> The error still persists. Also posted the issue on GitHub. Not sure if >>> it is bug in the parsing library. >>> >>> Any assistance would greatly be appreciated. >>> >>> Thanks. >>> >>> On Monday, June 22, 2020 at 9:07:18 AM UTC-4, J C wrote: >>>> >>>> Something like that I suppose. >>>> >>>> >>>> #Sets a varaiable for cdp neighbor detail >>>> - name: Run show cdp neighbors command >>>> ios_command: >>>> commands: >>>> - show cdp neighbors detail >>>> register: neighbors >>>> >>>> # Using the Genie Filter Plugin from the Genie Parse Role >>>> # Set pyats_neighbors as a dictionary >>>> - name: Set fact with Genie Filter Plugin >>>> set_fact: >>>> pyats_neighbors: " >>>> {{ neighbors['stdout'][0] | clay584.genie.parse_genie(command='show cdp >>>> neighbors detail', os='ios') }} >>>> " >>>> - name: Add interface desription >>>> ios_interfaces: >>>> config: >>>> - name: "{{ item.value.local_interface }}" >>>> description: " >>>> {{ item.value.device_id }} - {{ item.value.port_id }}" >>>> state: merged >>>> loop: "{{ q('dict', pyats_neighbors.index) }}" >>>> when: item.value.port_id is "AIR-AP280" >>>> >>>> On Sat, Jun 20, 2020 at 1:34 PM Jason <[email protected]> wrote: >>>> >>>>> Thanks. If you don't mind me asking because I am not familiar with >>>>> this, can you give me an example of how to use the set fact and when >>>>> statement for my case? >>>>> >>>>> On Friday, June 19, 2020 at 11:22:31 PM UTC-4, J C wrote: >>>>>> >>>>>> I would use the genie module and run the show cdp neighbor command. >>>>>> Then set fact and use that with the when command. >>>>>> >>>>>> On Fri, Jun 19, 2020, 10:05 PM Jason <[email protected]> wrote: >>>>>> >>>>>>> I am working on a project that would require me to bump (shutdown >>>>>>> and re-enable) switchports that are connected to an Access Point. >>>>>>> >>>>>>> I have created a playbook to run a command "show cdp neighbours" on >>>>>>> the switch, and that output would look like: >>>>>>> [image: sh cdp neighbours.JPG] >>>>>>> >>>>>>> What I want to do, is to use ansible to only run a command (ansible >>>>>>> play) on Gig 1/0/19 in this case. For other switches, it may be more >>>>>>> switchports and maybe in different format (eg. Gi 2/0/35). >>>>>>> >>>>>>> Is there a way to filter ansible output by looking for 'AIR-AP280' >>>>>>> and then extract that corresponding Local Interface (switchport number)? >>>>>>> >>>>>>> Or if there is another way to get done what I want, then great. >>>>>>> >>>>>>> Any suggestions/recommendations? >>>>>>> >>>>>>> It is over 50 switches, so it would be great if ansible can do what >>>>>>> I want to do. >>>>>>> >>>>>>> -- >>>>>>> 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 [email protected]. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/ansible-project/fd4b0f7a-85ba-4921-b252-9b760d1bd3d8o%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/ansible-project/fd4b0f7a-85ba-4921-b252-9b760d1bd3d8o%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> -- >>>>> 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 [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/ansible-project/644c6f2a-5a02-49fd-b84a-1c74ad722daao%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/ansible-project/644c6f2a-5a02-49fd-b84a-1c74ad722daao%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >>> 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 [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/ansible-project/9a09ee0c-1184-4d74-a41f-b69a89fca04co%40googlegroups.com >>> <https://groups.google.com/d/msgid/ansible-project/9a09ee0c-1184-4d74-a41f-b69a89fca04co%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- > 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/36cda932-fe68-499b-a70b-acf81cd693cfo%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/36cda932-fe68-499b-a70b-acf81cd693cfo%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAANJ-QT7a5HoWKGAhnKugGSUwcPRY0ZyP6MRJTtpRR2t9pQh8A%40mail.gmail.com.
