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 <[email protected]>: > 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 [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/0fe4e996-1bd9-45b0-b177-e65ed9680621%40googlegroups. > com > <https://groups.google.com/d/msgid/ansible-project/0fe4e996-1bd9-45b0-b177-e65ed9680621%40googlegroups.com?utm_medium=email&utm_source=footer> > . > 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 [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/CAB1FMuSbNJSb59Uue2VzKPiyiUok7W0Br-%3DOewN5QeXzWo1xxg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
