Re: [ansible-project] Check disk space/cleanup if full

2018-02-02 Thread Philippe Eveque
2 areas to look at:

related to your problems:
- most likely becauise /opt/splunkforwarder is not a mount point, but just
a directory

in addition:
- the assert task will fail when not enough space is available and the play
will be stopped


2018-02-01 17:11 GMT+01:00 Gabriel Forster :

> Across a number of different flavors of Linux as well as AIX, I need to
> clean up our splunkforwarder space. I've tried numerous different
> approaches and am running into errors. This should be rather simple, but it
> is proving not to be.  Below is my latest iteration and some of the
> relevant errors.
>
> My next approach will to be straight up df -h (df -g for aix) with some
> awk stuff...also checking if the mount even exists (it doesn't necessarily
> on every system). But, I think this should be simpler to do with normal
> Ansible modules.
>
> Any ideas on the obvious bits I'm missing?
>
> *Relevant playbook portion:*
>
>   tasks:
> #- name: Test for 20% disk space available
> #  assert:
> #that:
> #  - not {{ item.mount == '/opt/splunkforwarder' and (
> item.size_available > (item.size_total|float * 0.6) ) }}
> #  with_items: '{{ ansible_mounts }}'
> #  ignore_errors: yes
> #  register: disk_free
>
> - name: Test for 20% disk space available on {{ mountname }}
>   assert:
> that: mount.size_available > mount.size_total|float * 0.2
> msg: Disk space has reached the 80% threshold
>   register: disk_free
>
> - name: For full systems, run splunk clean
>   command: "/opt/splunkforwarder/bin/splunk clean all -f"
>   when: disk_free|failed
>
>   vars:
> mountname: '/opt/splunkforwarder'
> mount: "{{ ansible_mounts | selectattr('mount','equalto', mountname)
> | first }}"
>
> *Errors:*
> FAILED! => {"msg": "The conditional check '{ mount.size_available >
> mount.size_total|float * 0.2 }' failed. The error was: template error while
> templating string: expected token ':', got '}'. String: {% if {
> mount.size_available > mount.size_total|float * 0.2 } %} True {% else %}
> False {% endif %}\n\nThe error appears to have been in
> '/app/ansible-playbooks/splunk-clean.yml': line 18, column 7, but may\nbe
> elsewhere in the file depending on the exact syntax problem.\n\nThe
> offending line appears to be:\n\n\n- name: For full systems, run splunk
> clean\n  ^ here\n"}
>
> FAILED! => {"msg": "The conditional check 'mount.size_available >
> mount.size_total|float * 0.2' failed. The error was: error while evaluating
> conditional (mount.size_available > mount.size_total|float * 0.2): {{
> ansible_mounts | selectattr('mount','equalto', mountname) | first }}: No
> first item, sequence was empty."}
>
>
>
> --
> 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 ansible-project+unsubscr...@googlegroups.com.
> To post to this group, send email to ansible-project@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/ansible-project/0fe4e996-1bd9-45b0-b177-e65ed9680621%40googlegroups.
> com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAB1FMuSbNJSb59Uue2VzKPiyiUok7W0Br-%3DOewN5QeXzWo1xxg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[ansible-project] Check disk space/cleanup if full

2018-02-01 Thread Gabriel Forster
Across a number of different flavors of Linux as well as AIX, I need to 
clean up our splunkforwarder space. I've tried numerous different 
approaches and am running into errors. This should be rather simple, but it 
is proving not to be.  Below is my latest iteration and some of the 
relevant errors. 

My next approach will to be straight up df -h (df -g for aix) with some awk 
stuff...also checking if the mount even exists (it doesn't necessarily on 
every system). But, I think this should be simpler to do with normal 
Ansible modules.

Any ideas on the obvious bits I'm missing?

*Relevant playbook portion:*

  tasks:
#- name: Test for 20% disk space available
#  assert:
#that:
#  - not {{ item.mount == '/opt/splunkforwarder' and ( 
item.size_available > (item.size_total|float * 0.6) ) }}
#  with_items: '{{ ansible_mounts }}'
#  ignore_errors: yes
#  register: disk_free

- name: Test for 20% disk space available on {{ mountname }}
  assert:
that: mount.size_available > mount.size_total|float * 0.2
msg: Disk space has reached the 80% threshold
  register: disk_free

- name: For full systems, run splunk clean
  command: "/opt/splunkforwarder/bin/splunk clean all -f"
  when: disk_free|failed

  vars:
mountname: '/opt/splunkforwarder' 
mount: "{{ ansible_mounts | selectattr('mount','equalto', mountname) | 
first }}"

*Errors:*
FAILED! => {"msg": "The conditional check '{ mount.size_available > 
mount.size_total|float * 0.2 }' failed. The error was: template error while 
templating string: expected token ':', got '}'. String: {% if { 
mount.size_available > mount.size_total|float * 0.2 } %} True {% else %} 
False {% endif %}\n\nThe error appears to have been in 
'/app/ansible-playbooks/splunk-clean.yml': line 18, column 7, but may\nbe 
elsewhere in the file depending on the exact syntax problem.\n\nThe 
offending line appears to be:\n\n\n- name: For full systems, run splunk 
clean\n  ^ here\n"}

FAILED! => {"msg": "The conditional check 'mount.size_available > 
mount.size_total|float * 0.2' failed. The error was: error while evaluating 
conditional (mount.size_available > mount.size_total|float * 0.2): {{ 
ansible_mounts | selectattr('mount','equalto', mountname) | first }}: No 
first item, sequence was empty."}



-- 
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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/0fe4e996-1bd9-45b0-b177-e65ed9680621%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.