我有一个简单的剧本,应该显示我的服务状态。我想查看机器的输出以查看状态是否处于活动状态。所以我使用了调试打印,如下所示:
- name: name_of_services
shell: systemctl status {{item}}
with_items:
- service1
- service2
register: out
- debug: var=item.stdout_lines
with_items: out.results
当我执行此操作时,我得到了很多我不想要的信息以及我确实想要的 item.stdout_lines 信息。
如何更好地查看命令的输出?
对于循环调用的模块(包括调试)(即 with_items),将显示每次迭代时 item 的值。我不知道有什么方法可以关闭它。如果你想减少输出,你可以尝试切换到使用 msg 参数调试模块它采用 jinja 模板字符串。您可以做这样的事情,显然调整正则表达式以匹配 systemctl 输出。
- name: show values
debug: msg="{{ item.stdout_lines | replace_regex('^(.*).service.*Active: (.*).$', \\\1 \\\2) }}"
with_items: out.results
如果您不想使用replace_regex函数,您可以考虑编写自己的函数过滤器插件按照您喜欢的方式格式化数据。
一般来说,ansible playbook 不是显示通过寄存器变量、事实等收集的状态信息的好地方。playbook 输出更适合任务状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)