1) How can I NOT print what server2 is printing/showing?
I'd say add a when clause to the task, like:
- name: Print results
ansible.builtin.debug:
msg: "{{ zero }}"
when: "some condition here"
so the print only happens when the condition is met. The condition might
be some value from the message_files variable
Or maybe something like:
when: meages_files.ssfiles | selectattr('size', '==', 0)
not sure about that though because I don't understand really what
meages_files.ssfiles | selectattr('size', '==', 0) does
On 4/24/24 9:26 PM, lift...@gmail.com wrote:
I have a playbook I'm developing where I'm trying to find any server
that has a 0 length /var/log/messages files. When I find those, I
want to restart the rsyslog service on those. So right now I'm
setting this fact as follows:
---
- hosts: my_hosts
become: true
become_method: sudo
gather_facts: false
tasks:
- name: Determine if /var/log/messages is zero-length
ansible.builtin.find:
paths: /var/log
patterns: messages
register: messages_files
- name: Set fact for all servers that have zero-length /var/log/messages
ansible.builtin.set_fact:
zero: "{{ messages_files.files | selectattr('size', '==', 0) }}"
- name: Print results
ansible.builtin.debug:
msg: "{{ zero }}"
When the debug print happens, I get all servers printing out either
the file attributes, or an empty string:
ok: [server1] => {
"msg": [
{
"atime": 1713683723.242925,
"ctime": 1713683723.242925,
"dev": 64777,
"gid": 10,
"gr_name": "wheel",
"inode": 8212,
"isblk": false,
"ischr": false,
"isdir": false,
"isfifo": false,
"isgid": false,
"islnk": false,
"isreg": true,
"issock": false,
"isuid": false,
"mode": "0640",
"mtime": 1713683723.242925,
"nlink": 1,
"path": "/var/log/messages",
"pw_name": "root",
"rgrp": true,
"roth": false,
"rusr": true,
"size": 0,
"uid": 0,
"wgrp": false,
"woth": false,
"wusr": true,
"xgrp": false,
"xoth": false,
"xusr": false
}
]
}
ok: [server2] => {
"msg": []
}
So, 2 questions:
1) How can I NOT print what server2 is printing/showing?
2) Once I fix #1, how can I get just the hostnames of those servers
where the size of the file is 0, then start another play to restart
rsyslog on only those?
Thanks,
Harry
--
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 view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/5617fb1f-3aa7-45a3-ba84-656b7b786c86n%40googlegroups.com
<https://groups.google.com/d/msgid/ansible-project/5617fb1f-3aa7-45a3-ba84-656b7b786c86n%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
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 view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/4a2f58ef-70b8-4784-9725-14b37e8875a1%40mailbox.org.