我想运行一些返回一些数据的命令,并使用位于ansible服务器上的脚本以某种方式处理这些数据。我怎么能这样做?
例如:
我想跑
ansible all -a "cat /etc/redhat-release"
然后我想用参数version_parser.py
调用名为name_of_server
的脚本(位于本地ansible服务器上,而不是ansible正在执行命令的主机上),并将此调用的输出作为输入传递。
所以实际上我得到类似的东西
ssh server1 "cat /etc/redhat-release" | version_parser.py server1
ssh server2 "cat /etc/redhat-release" | version_parser.py server2
...
做这样的事情最简单的方法是什么?
答案 0 :(得分:2)
您可以运行远程命令并将结果存储在变量中。接下来,您可以运行local_action
并使用存储的变量执行本地脚本:
---
- name: Run remote command
command: "bash -c 'ls -l /etc/init.d/a* | grep -c app'"
register: store
- name: Run result against local script
local_action: "shell echo '{{ store.stdout }}' | /path/to/local/parser.py {{ inventory_hostname }}"