ansible变量范围不够广泛

时间:2019-05-15 23:14:40

标签: scope ansible

我有一个名为get_install_command的角色,该角色运行本地python脚本,该脚本返回需要在远程服务器上运行的命令。角色get_install_command设置一个名为“ install_command”的变量,角色“ install”将尝试使用该变量。这是我的代码:

 - hosts: localhost
   roles:
     - get_install_command

 - hosts: remote_host
   roles:
     - install

但是我收到此错误:

"installation_command.stdout_lines": "VARIABLE IS NOT DEFINED!"

该如何解决?在我看来,我需要将此变量放在更高的范围内

1 个答案:

答案 0 :(得分:0)

在戏剧中使用registerset_fact定义的变量的范围是运行任务的主机。因此,由于您在get_install_command上运行localhost,因此install_command变量在localhost上可用。

文档涵盖how to access variables defined on another host。您想要这样的东西:

hostvars.localhost.install_command.stdout