Matt,
Superb, and thanks!
I went ahead and installed the latest win_updates module. The only reason
I wasn't using it is that I've had good luck with running native Windows
commands via the raw command. I understand why you recommend using
win_updates, though, and I'll work with it.
The two service-related tasks work a treat! Being pretty new to ansible, I
was wondering where you got this from?: lyris_hint.rc not in [0,1060].
Knowing such things looks to be extremely valuable.
Also, why am I not seeing the output of sc query ListManager if I add -
debug: var=reboot_hint.stdout_lines ? I created another play that returns
whether or not a Linux x system requires a reboot because the kernel was
updated:
---
- hosts: all
gather_facts: true
sudo: yes
# serial: 1
tasks:
- name: Check for reboot hint.
shell: if [ `rpm -qa --last|grep kernel-2.6| cut -d'-' -f2- | awk
'{print $1}' | head -n 1` != `uname -r` ]; then echo "reboot"; else echo
"no"; fi
register: reboot_hint
always_run: yes
tags:
- testreboot
- debug: var=reboot_hint.stdout_lines
which outs:
ok: [victoriantra] => {
"var": {
"reboot_hint.stdout_lines": [
"no"
]
}
}
That's a bit chatty, but a parsing question of which I'll ask about in
another post.
Your continued help is appreciated.
Dimitri
On Tuesday, September 1, 2015 at 12:22:23 PM UTC-4, Dimitri Yioulos wrote:
>
> 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/80aa5455-18da-4386-9093-3efa07a07d9f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.