Ansible - 将外部变量设置为变量名称

时间:2021-04-06 14:34:12

标签: ansible

我使用的是 ansible 2.10.7

我需要将 vars 中的变量名设置为我从外部 var 获得的名称:

---
- name: Playbook to demonstrate cv_container module.
  hosts: cvp_servers
  connection: local
  gather_facts: no
  collections:
    - arista.avd
    - arista.cvp
  vars:
    tag: "{{tag_name}}"
    configlet_list:
            {{some_var_name}}: "{{lookup('file', 'configlets/' + tag )}}"

它不允许我这样做, 我的剧本取决于 var 名称,因此我必须使其具体化,但也希望选择以不同的名称运行它,var {{some_var_name}} 必须是我运行剧本的网络设备名称。

我试过 "{{some_var_name}}" , '{{some_var_name}}' 就是不行,

有可能吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用组合过滤器:

vars:
  configlet_list: "{{ {} | combine({ some_var_name: lookup('file', 'configlets/' + tag) }) }}"
相关问题