如何将数组传递给 AWX/Ansible Tower

问题描述

我从 ManageIQ 调用 AWX 模板。我将 9 个变量传递给剧本(prompt on launch 处于活动状态)。剧本被成功调用,所有的变量都通过了。但是,其中两个变量应该是数组。相反,它们作为字符串传入 AWX:例如,'["chefclient"]' 而不是 ["chefclient"]

在将这些变量传递给 AWX 模板之前,我已经确认这些变量确实是 ManageIQ 中的数组类型。

知道为什么会这样吗?是否所有的 var 都不可抗拒地转换为字符串?我该如何解决这个问题?

谢谢!

解决方法

According to the RedHat developers on Gitter.im,这是ManageIQ 中launch_ansible_method 的一个缺点。即,它总是将数组转换为字符串。我们have opened an issue on GitHub来解决这个问题。

,

我基本上在 ansible 塔/awx 中有一个变量,它将输入作为文本,服务器名称作为数组/列表。示例:["node1","node2","node3"] 一旦作业启动,我可以在额外变量中看到该变量为'["node1","node3"]'。我不确定这样做的原因,但它不会影响您对该变量的后续 ansible 操作。并非所有变量都只有在使用数组/列表时才会得到单引号。

,

我尝试在本地安装 AWX 的情况下复制此内容。我已将 v_packages 变量数据作为 ["apache2","nginx"] 传递。我现在没有看到这个问题。 output

job output