使用 ansible 变量运行脚本模块

lov*_*ovi 2 ansible

我有这个任务:

- name: script
  script: "scripts/script.sh"
Run Code Online (Sandbox Code Playgroud)

在这个脚本中,我想使用像 {{myvar}} 这样的 ansible var

那可能吗 ?

THKS

Pic*_*Cls 7

据我所知,没有一种方法可以直接在脚本中使用 Ansible 变量,如您所描述的。

有许多不同的方法可以实现我认为您所追求的行为。

第一个选项是以这样一种方式编写脚本,即可以将所需的变量值作为参数传入。如脚本模块文档中所述:

脚本模块采用脚本名称,后跟以空格分隔的参数列表。

因此,您可以运行一个将变量作为参数的脚本,例如:

- name: script
  script: scripts/script.sh {{myvar}}
Run Code Online (Sandbox Code Playgroud)

另一种选择是将脚本模板化并使用 Ansible模板模块将变量值直接替换到您的脚本中。然后,您可以使用命令shell Ansible 模块在远程节点上执行从模板配置的脚本。