playbook to restart node if uptime is greater than 100 days

41 views
Skip to first unread message

Sameer Modak

unread,
Aug 10, 2017, 5:25:28 AM8/10/17
to Ansible Project
I could rit playbook to get uptime but how we can take action on the output received from ansible.
how we can grep days from below output and rit restart code for the same.

ok: [NESSTDDB01] => {
    "result.stdout": " 12:03pm  up 343 days 16:57,  1 user,  load average: 5.15, 5.37, 5.21"

If days are greater than 100 then restart node

how we can achieve this.

Kai Stian Olstad

unread,
Aug 10, 2017, 1:24:36 PM8/10/17
to ansible...@googlegroups.com
Why not just use ansible fact

- name: Restart server
shell: sleep 2 && /sbin/reboot
async: 1
poll: 0
when: ansible_uptime_seconds > 8640000

--
Kai Stian Olstad

Sameer Modak

unread,
Aug 13, 2017, 6:55:46 AM8/13/17
to Ansible Project, ansible-pr...@olstad.com
Thanks kai,

But what if i want to grep days from output and then write condition on it. Is it possible.

Now it will not possible for most of the thing to have direct implementation. Hence can we grep >100 days from output and then restart.

Kai Stian Olstad

unread,
Aug 13, 2017, 7:21:45 AM8/13/17
to ansible...@googlegroups.com
On 13. aug. 2017 12:55, Sameer Modak wrote:
> But what if i want to grep days from output and then write condition on it.
> Is it possible.
>
> Now it will not possible for most of the thing to have direct
> implementation. Hence can we grep >100 days from output and then restart.

You could always use
when: result.stdout | search('[0-9]{3,} days')


--
Kai Stian Olstad
Reply all
Reply to author
Forward
0 new messages