如何获取需要从Ansible重新启动的服务器列表

时间:2018-07-05 14:15:13

标签: ansible

我当前正在使用临时命令ansible ubuntu -a "ls -l /var/run/reboot-required"来获取需要重启的服务器列表。但是,最终结果是所有服务器的列表,以及有关指示文件的信息或该文件不存在的错误。

我对剧本足够熟悉,可以创建一个实际上可以重启的剧本,但是我不想要那样。我只想要一个不错的(相对简洁的)服务器列表,它们仍然需要重启。

获取满足某些条件(例如,具有变量集)的服务器列表的更通用的解决方案也将很有帮助。

1 个答案:

答案 0 :(得分:0)

这并不容易,因为正确的方法是使用stat检查文件的存在,将其保存到变量并创建列表when: var.stat.exists

如果您想单行执行,并且不介意使用bash脚本,请执行以下操作:

ansible ubuntu -m stat -a "path=/var/run/reboot-required" -o | grep -v '{"exists": false}' | awk -F\| '{ print $1 }'

希望有帮助