如何将值从ansible playbook返回到shell脚本?

如何将值从ansible playbook返回到shell脚本?,shell,ansible,Shell,Ansible,例如,我从shell脚本调用剧本 #!/bin/bash UPGRADE=`ansible-playbook -i /etc/ansible/hosts checkUpgrade.yml` echo " UPGRADE VALUE $UPGRADE " 我想从checkUpgrade.yml返回/设置一些变量,以便调用方脚本可以使用它进行进一步的使用 注意:不想将值写入文件 如果在命令或shell上注册变量,则返回代码总是(?)保存 更具体地说,您可以在playbook的末尾输出一些关键

例如,我从shell脚本调用剧本

#!/bin/bash
UPGRADE=`ansible-playbook -i /etc/ansible/hosts checkUpgrade.yml`
echo " UPGRADE VALUE $UPGRADE "
我想从checkUpgrade.yml返回/设置一些变量,以便调用方脚本可以使用它进行进一步的使用

注意:不想将值写入文件


如果在命令或shell上注册变量,则返回代码总是(?)保存

更具体地说,您可以在playbook的末尾输出一些关键的sentinel字符串,您可以在$UPGRADE中扫描这些字符串

if grep -q SPECIAL_CONDITION_1 <<< "$UPGRADE"
then doStuff1
elif grep -q SPECIAL_CONDITION_2 <<< "$UPGRADE"
then doStuff2
...

如果grep-q特殊条件1不顾您的意愿,向文件中写入值确实是实现您所需的最好方法。或者,从ansible playbook调用脚本,在这种情况下,您可以在命令行上向它传递一个参数。为什么要使用ansible获取单个值?将输出传输到grep并存储它。这更像是一个
shell
问题。编辑了我的语法。