Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何将阵列传递到AWX/Ansible塔_Ruby_Ansible Awx_Manageiq - Fatal编程技术网

Ruby 如何将阵列传递到AWX/Ansible塔

Ruby 如何将阵列传递到AWX/Ansible塔,ruby,ansible-awx,manageiq,Ruby,Ansible Awx,Manageiq,我正在从ManageIQ调用AWX模板。我将9个变量传递给playbook(启动时提示处于活动状态)。剧本被成功调用,所有的VAR都通过了。然而,其中两个变量应该是数组。相反,它们作为字符串传递给AWX:例如,'[“chefclient”]而不是[“chefclient”] 在我将这些变量传递给AWX模板之前,我已经确认它们确实是ManageIQ中的数组类型 你知道为什么会这样吗?是否所有变量都无法抗拒地转换为字符串?我该如何解决这个问题 谢谢大家! 我基本上在ansible tower/awx

我正在从ManageIQ调用AWX模板。我将9个变量传递给playbook(启动时提示
处于活动状态)。剧本被成功调用,所有的VAR都通过了。然而,其中两个变量应该是数组。相反,它们作为字符串传递给AWX:例如,
'[“chefclient”]
而不是
[“chefclient”]

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

你知道为什么会这样吗?是否所有变量都无法抗拒地转换为字符串?我该如何解决这个问题


谢谢大家!

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

,这是ManageIQ中launch\u ansible\u方法的一个缺点。也就是说,它总是将数组转换为字符串。我们需要解决这个问题。

我已经尝试在本地安装AWX的情况下在我的终端上复制这个问题。我已将v_包变量数据作为[“apache2”、“nginx”]传递。我现在看不出这个问题。


谢谢@altair66!我已经和负责剧本的unix管理员分享了这一点,看看他是否可以使用这些信息。他说playbook无法使用字符串化数组,这与您的经验不同。可能他需要将这些变量的数据类型从数组切换到字符串。您好@mike_butak您能分享关于使用该变量执行哪些操作的任何其他信息吗感谢@altair66,一个数组是要安装的软件包列表(postgres等),另一个是要为RBAC配置的服务器组或角色列表。hello@altair66,在与RedHat上的开发人员聊天后,我了解到这是launch_ansible_作业方法的一个局限性。它总是将数组转换为字符串。我甚至有同样的问题,想知道您是在ansible模块中使用这些变量,还是将这些变量传递给shell或其他脚本。在这种情况下,您需要删除这些单引号。然后转换或进行一些更改。谢谢@altair66。问题似乎在于ManageIQ中的特定方法是如何编写的。它显然使数组字符串化。解决方案是要么修改ManageIQ方法,要么找到在AWX中解析它的方法。谢谢你的意见!嗨,迈克·布塔克。是的,我认为这些是至少目前解决这个问题的唯一方法。