Hi Pushparaj,
I made a small modification to your suggestion and wrote the playbook in
such a way that the number of boot statements set must match with numbr of
stacked switches. This is to ensure that all stacked switches have boot
statemtn set. However i am not getting the desired output. What am i doing
wrong?
connection: network_cli
vars:
ansible_network_os: ios
tasks:
- ios_command:
commands: "show switch"
register: show_switch
- debug:
msg: "{{ 'show_switch' | regex_findall('Switch') | length }}"
- ios_command:
commands: "sh boot"
register: show_boot
- debug:
msg: "{{ 'show_boot' |
regex_findall('flash:/c2960x-universalk9-mz.154-4.E4.bin') | length }}"
- name: END THIS PLAYBOOK WHEN NO. OF BOOT STATEMENT DO NOT MATCH WITH NO.
OF SWITCHES
meta: end_host
when: "{{ 'show_switch' | regex_findall('Switch') | length }} != "{{
'show_boot' | regex_findall('flash:/c2960x-universalk9-mz.154-4.E4.bin') |
length }}"
Thanks,
Vikram
On Sunday, 7 March, 2021 at 5:46:05 am UTC+5:30 rajthecomputerguy wrote:
> You can use length of stacked serial number in facts so that you can know
> how many switch the stack has and you can compare length of boot path regex
>
>
>
> ansible_net_stacked_models
> list / elements=string
> when multiple devices are configured in a stack
> The model names of each device in the stack
>
> ansible_net_stacked_serialnums
> list / elements=string
> when multiple devices are configured in a stack
> The serial numbers of each device in the stack
>
>
> On Fri, Mar 5, 2021, 8:09 PM Vikram S <[email protected]> wrote:
>
>> Hi Pushparaj,
>>
>> Thanks for above config. But i feel above command may partially only
>> solve my issue feel. I feel i didn't frame the question properly to get the
>> correct response.
>>
>> I need to write a script to verify that boot statement is automatically
>> set in ALL member switches of a stacked switch when doing post-copying
>> verification.
>>
>> But the problem is the script i know checks if boot statement for new
>> image is set or not. It DOESN'T check if the boot statement is set for ALL
>> member switches or not.
>>
>> In other words, in below output, in case if new image is missing for 1 of
>> the 3 member switches, how can i identify it using a script? Each switch
>> may contain different number of stacked switch, so i may not be able to use
>> pipe length parameter unles i included some conditional (which may make the
>> script very lengthy)
>>
>> SWITCH#sh boot | i BOOT path-list
>>
>> BOOT path-list :
>> flash:/c2960x-universalk9-mz.152-4.E7/c2960x-universalk9-mz.154-4.E4.bin
>>
>> BOOT path-list :
>> flash:/c2960x-universalk9-mz.152-4.E7/c2960x-universalk9-mz.154-4.E4.bin
>>
>> BOOT path-list :
>> flash:/c2960x-universalk9-mz.152-4.E7/c2960x-universalk9-mz.154-4.E4.bin
>>
>> On Thursday, 4 March, 2021 at 11:18:41 am UTC+5:30 rajthecomputerguy
>> wrote:
>>
>>> you can use regex to match and pipe length -- that should be equal to 3
>>>
>>> regex_findall("flash:/c2960x-universalk9-mz.152-4.E7/c2960x-universalk9-mz.154-4.E4.bin")
>>>
>>> | length
>>>
>>>
>>>
>>> On Thu, Mar 4, 2021 at 3:24 AM Vikram S <[email protected]> wrote:
>>>
>>>> When i use below command, it automatically copies image to ALL member
>>>> switches and sets boot statement by itself.
>>>>
>>>> archive download-sw /leave-old-sw ftp://username:[email protected]
>>>> /c2960x-universalk9-tar.154-4.E4.tar
>>>>
>>>>
>>>> I need to write a script to verify that boot statement is automatically
>>>> set in ALL member switches of a stacked switch after this copying. But
>>>> problem is i can easily write it when the boot statement is only 1 line.
>>>> But when it is in multiple lines as below (3 boot statement for 3 member
>>>> switches), thenhow can i verify
>>>> that'flash:/c2960x-universalk9-mz.152-4.E7/c2960x-universalk9-mz.154-4.E4.bin'
>>>>
>>>> exists on every line and not just in 1 or 2 lines?
>>>>
>>>>
>>>> SWITCH#sh boot | i BOOT path-list
>>>>
>>>> BOOT path-list :
>>>> flash:/c2960x-universalk9-mz.152-4.E7/c2960x-universalk9-mz.154-4.E4.bin
>>>>
>>>> BOOT path-list :
>>>> flash:/c2960x-universalk9-mz.152-4.E7/c2960x-universalk9-mz.154-4.E4.bin
>>>>
>>>> BOOT path-list :
>>>> flash:/c2960x-universalk9-mz.152-4.E7/c2960x-universalk9-mz.154-4.E4.bin
>>>>
>>>> --
>>>> 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/a473afb7-a028-4dcb-b22e-3149242db38bn%40googlegroups.com
>>>>
>>>> <https://groups.google.com/d/msgid/ansible-project/a473afb7-a028-4dcb-b22e-3149242db38bn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>
>>>
>>> --
>>>
>>> Thanks,
>>>
>>> Pushparaj G
>>>
>>> --
>> 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/baaeb194-7326-4ed7-ae81-c790ac7b321bn%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/ansible-project/baaeb194-7326-4ed7-ae81-c790ac7b321bn%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/a5b94683-046a-4bce-a963-177c6969dd42n%40googlegroups.com.