Hi, all.
I've been struggling with trying to get Ansible working for Windows
automation. Perhaps I'm asking too much, but here's what I'm after - I
want to update a group of servers, stop a particular service on a few of
those server, then reboot the entire group. Updating and rebooting are the
easy parts. My challenge is in identifying the servers that have the
particular service running, and stopping that service if it's running. The
command that I'd use at the Windows cli would be this: sc query
ListManager | find "RUNNING" or
sc query ListManager | find "STATE", which return "STATE : 4 RUNNING". I
can extend that a bit, like so: sc query ListManager | find "RUNNING" >nul
2>&1 && echo running, which obviously returns "running".
Here's my play, so far:
---
- hosts: all
gather_facts: false
tasks:
- name: update server
raw: 'cmd /c wuauclt.exe /resetauthorization /detectnow /updatenow'
- name: check for Lyris service
raw: sc query ListManager | find "RUNNING" >nul 2>&1 && echo running
# when: "'LM' not in inventory_hostname"
register: lyris_hint
always_run: yes
tags:
- lyristest
- debug: var=lyris_hint.stdout_lines
I was hoping that the debug line would output "running" so that I could use
output from the raw as the basis for stopping the service with:
- win_service:
name: ListManager
state: stopped
- win_service:
name: LyrisAlert
state: stopped
and, finally, reboot the systems with:
- name: reboot server
raw: 'cmd /c shutdown /r /t 0'
Can anyone help me with the service detection/stop part of this?
Thanks.
Dimitri
--
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 post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/97676906-f0b0-414f-b344-c6994411d33d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.