0

我正在尝试启动一个 awx/tower 作业模板,传递变量中的值列表,但该任务仅在一个目标主机上执行。

样品要求

curl -H "Content-Type: application/json" -X POST -s -u admin:admin123 -d '{ "extra_vars": { "domain": "dom-cn-1", "targets": "dev-cn-c1", "targets": "dev-cn-c2", "fwcmd": "fw sam -v -J src 192.168.10.10" }}' -k https://172.16.102.4/api/v2/job_templates/10/launch/

上述命令没有按预期执行,而是在单个主机上运行。但是,当我通过 cli 运行相同的剧本时,这是按预期工作的。

vars 文件截图

domain: dom-cn-1
targets:
    - dev-cn-c1
    - dev-cn-c2

剧本文件

- name: "Create output file"
  check_point_mgmt:
    command: run-script
    parameters:
      script-name: "Create output file"
      script: "fw sam -v  -J src  192.168.10.10"
      targets: "{{ targets }}"
    session-data: "{{login_response}}"
4

1 回答 1

0

让我们在 curl 命令中提取 json:

{
  "extra_vars": { 
    "domain": "dom-cn-1",
    "targets": "dev-cn-c1",
    "targets": "dev-cn-c2",
    "fwcmd": "fw sam -v -J src 192.168.10.10"
  }
}

您不是传递列表,而是传递具有不同值的相同参数的两倍。你必须像这样更正你的json:

{
  "extra_vars": { 
    "domain": "dom-cn-1",
    "targets": ["dev-cn-c1", "dev-cn-c2"],
    "fwcmd": "fw sam -v -J src 192.168.10.10"
  }
}
于 2019-04-27T13:36:12.790 回答