Arrays 变量作为Ansible中的数组/对象键
我正在写一本剧本,用我指定的名字创建一个网络。稍后在剧本中,我需要访问这个网络任务分配的IP,所以我从hostvars获得它。例如,如果我将网络称为“我的网站”,那么我在hostvars中的目标价值将是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文件传入的变量的内容来命名网络,以使其在多个设置中可重用,然后仍然能够获得该
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]}我将发布一个示例,说明我使用了什么以及得到了什么。但对我来说,这暗示了一个更大的限制——我不能使用变量来针对其他变量?我将发布一个示例,说明我使用了什么以及我得到了什么。但对我来说,这暗示了一个更大的限制——我不能使用变量来针对其他变量?