我从 ManageIQ 调用 AWX 模板。我将 9 个变量传递给剧本(prompt on launch活动)。该剧本被成功调用,并且所有的变量都通过了。然而,其中两个变量应该是数组。相反,它们作为字符串传递给 AWX:例如,'["chefclient"]'而不是["chefclient"].
在将这些变量传递给 AWX 模板之前,我已经确认这些变量在 ManageIQ 中确实是数组类型。
任何线索为什么会这样?是否所有 var 都会不可抗拒地转换为字符串?我该如何解决?
谢谢!
我从 ManageIQ 调用 AWX 模板。我将 9 个变量传递给剧本(prompt on launch活动)。该剧本被成功调用,并且所有的变量都通过了。然而,其中两个变量应该是数组。相反,它们作为字符串传递给 AWX:例如,'["chefclient"]'而不是["chefclient"].
在将这些变量传递给 AWX 模板之前,我已经确认这些变量在 ManageIQ 中确实是数组类型。
任何线索为什么会这样?是否所有 var 都会不可抗拒地转换为字符串?我该如何解决?
谢谢!
根据 Gitter.im 上的 RedHat 开发人员的说法,这是 ManageIQ 中的 launch_ansible_method 的一个缺点。即,它总是将数组转换为字符串。我们在 GitHub 上打开了一个 issue来解决这个问题。
我基本上在 ansible tower/awx 中有一个变量,它将输入作为文本,服务器名称作为数组/列表。例如:["node1","node2","node3"] 一旦作业启动,我可以看到额外变量中的变量为'["node1","node2","node3"]'。我不确定它这样做的原因,但它不会影响您对该变量的后续 ansible 操作。并非所有变量都只有在使用数组/列表时才会得到单引号。