Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
Arrays 变量作为Ansible中的数组/对象键_Arrays_Variables_Yaml_Ansible - Fatal编程技术网

Arrays 变量作为Ansible中的数组/对象键

Arrays 变量作为Ansible中的数组/对象键,arrays,variables,yaml,ansible,Arrays,Variables,Yaml,Ansible,我正在写一本剧本,用我指定的名字创建一个网络。稍后在剧本中,我需要访问这个网络任务分配的IP,所以我从hostvars获得它。例如,如果我将网络称为“我的网站”,那么我在hostvars中的目标价值将是 server: "{{hostvars.localhost.rax_nfs.results[0].success[0].rax_addresses.my_website[0].addr}}" 这很好,但是我想根据var文件传入的变量的内容来命名网络,以使其在多个设置中可重用,然后仍然能够获得该

我正在写一本剧本,用我指定的名字创建一个网络。稍后在剧本中,我需要访问这个网络任务分配的IP,所以我从hostvars获得它。例如,如果我将网络称为“我的网站”,那么我在hostvars中的目标价值将是

server: "{{hostvars.localhost.rax_nfs.results[0].success[0].rax_addresses.my_website[0].addr}}"
这很好,但是我想根据var文件传入的变量的内容来命名网络,以使其在多个设置中可重用,然后仍然能够获得该IP,所以

network_label: "{{ my_website }}"
server: "{{hostvars.localhost.rax_nfs.results[0].success[0].rax_addresses.network_label[0].addr}}"
显然这不起作用,因为它只分配了一个字符串。如何使用网络标签作为另一个变量内的键?比如在php中

$array[$variable]或$object->$variable


这可能吗

不确定剧本是什么样子,但基于收集的事实访问IP在您的环境中不起作用吗?示例:{{ansible_eth0.ipv4.address}

或者,在创建网络的任务中,您可以将其注册为变量,以便以后使用该变量名进行访问。
您还可以访问变量中的数组元素:{{var_name[0]}

不确定剧本是什么样子,但是基于收集的事实访问IP在您的上下文中不起作用吗?示例:{{ansible_eth0.ipv4.address}

或者,在创建网络的任务中,您可以将其注册为变量,以便以后使用该变量名进行访问。
您还可以访问变量中的数组元素:{{var_name[0]}

我将发布一个示例,说明我使用了什么以及得到了什么。但对我来说,这暗示了一个更大的限制——我不能使用变量来针对其他变量?我将发布一个示例,说明我使用了什么以及我得到了什么。但对我来说,这暗示了一个更大的限制——我不能使用变量来针对其他变量?