【发布时间】:2014-12-17 18:17:19
【问题描述】:
我在远程主机上将 $MY_VAR 设置为某个值,我想从剧本中查询它 (将它的值放在 ansible 变量中),这就是我所看到的:
- 名称:将 shell var 放入 ansible var 命令:回声 $MY_VAR 注册:my_var - 调试:var=my_var 好的:[192.168.78.10] => { “我的变量”:{ “改变”:是的, “命令”:[ “回声”, “$my_var” ], “三角洲”:“0:00:00.002284”, “结束”:“2014-12-17 18:10:01.097217”, “调用”:{ "module_args": "echo $my_var", “模块名称”:“命令” }, “rc”:0, "开始": "2014-12-17 18:10:01.094933", “标准错误”:“”, "stdout": "$my_var", “标准输出线”:[ “$my_var” ] } }注意:
如果我将命令更改为:
command: pwd
然后我得到了预期的结果:
"my_var": {
"stdout": "/home/vagrant",
"stdout_lines": [
"/home/vagrant"
]
}
似乎从 ansible 调用时 echo 没有扩展
【问题讨论】:
-
您确定,只要您通过 ssh 连接到远程主机,就可以访问此环境变量吗?如果你 ssh 到机器,做“echo $MY_VAR”会打印什么吗?我的意思是可以为每个终端实例设置 env 变量,那么您的 env 变量是否可能设置在一个终端上,但是如果您启动一个新选项卡,它可能不可见?
-
echo $MY_VAR 在远程主机上打印期望值,在用户的 ~/.profile 中设置