首页 > 解决方案 > 如何从ansible获取需要重启的服务器列表

问题描述

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

我对剧本足够熟悉,可以创建一个真正进行重新启动的剧本,但我不想要那样。我只想要一个漂亮(且相对整洁)仍然需要重新启动的服务器列表。

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

标签: ansible

解决方案


不容易,因为正确的方法是检查文件是否存在,将其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 }'

希望能帮助到你


推荐阅读