win_service_info register

Hi
Trying to use win_service_info with a register.
While the register is filled with multiple entries, i want to make sure all these are started.
How to write the loop ?

  • name: Find all services that start with ‘blabla’
    ansible.windows.win_service_info:
    name: blabla*
    register: service

#Print everything

  • name: Print service facts
    ansible.builtin.debug:
    var: service

#Print only the first one

  • name: Print service facts
    ansible.builtin.debug:
    var: service.services[0].name

- name: make sure service is started
win_service:
name: ‘service.services[{{ item }}].name’
state: started
with_items: service.services.index ?

Thanks!

cc @jborean93

Hi Jordan, can you please assist here ?

Just loop the services entry and then your item is item.name.

  • win_service:
    name: ‘{{ item.name }}’
    state: started
    with_items: ‘{{ service.services }}’

This works because service.services is a list that contains a dictionary so you are looping each entry and then getting the name key in that dict.

Thank you!
I wonder why i didn’t try it…

HI Jordan,

I am wondering how I could modify the above code to only start when a service exist with out ignoring errors as an option.