在 Ansible 中将变量作为脚本传递

pass a variable as a script in Ansible

我有下面的操作,其中我试图停止 AIX 服务器上的 WAS 实例。

  ---
  - hosts: all
  vars_files:
     - /etc/ansible/conf/var.yml
  tasks:
    - name: stop websphere instances
      script: {{ was_script }} {{ item }}
      with_items: "{{ was_inst }}"

was_script 和 was_inst 在 var.yml 中列为变量。现在,如果我对脚本进行硬编码而不是 was_script,它就可以工作。但是,如果我将它称为变量,它就不起作用了。 它说这是一个 YAML 语法错误,但我似乎无法弄清楚错误是什么。

箭头 ^ here 指向 script: {{ was_script }} {{ item }} 线。
你应该引用它 script: "{{ was_script }} {{ item }}",因为它以大括号开头。
文档中有关于 YAML gotchas 的说明。