Ansible 在角色中访问vars文件中的变量时出错

Ansible 在角色中访问vars文件中的变量时出错,ansible,Ansible,作为这个问题的后续行动。我也在尝试做同样的事情,只是使用了角色。变量存储在vars文件中 下面是角色中的vars/main.yml文件 add: commands: [] sub: commands: [] multiply: commands: [] div: commands: [] 下面是tasks/main.yml文件中的代码 - name: Getting the Add Commands set_fact: add.

作为这个问题的后续行动。我也在尝试做同样的事情,只是使用了角色。变量存储在vars文件中

下面是角色中的vars/main.yml文件

add:
    commands: []
sub:
    commands: []
multiply: 
    commands: []
div:
    commands: []
下面是tasks/main.yml文件中的代码

 - name: Getting the Add Commands
   set_fact:
            add.commands: "{{add.commands + [ item ]}}"
   with_lines: "cat {{ {{playbook_dir}}/testing/files/data.txt }}"
   when: item is search('^add')
 - debug:
        var: add.commands
- name: Getting the Sub Commands
   set_fact:
            sub.commands: "{{sub.commands + [ item ]}}"
   with_lines: "cat {{ {{playbook_dir}}/testing/files/data.txt }}"
   when: item is search('^sub')
 - debug:
        var: sub.commands
- name: Getting the Multiply Commands
   set_fact:
            multiply.commands: "{{multiply.commands + [ item ]}}"
   with_lines: "cat {{ {{playbook_dir}}/testing/files/data.txt }}"
   when: item is search('^multiply')
 - debug:
        var: multiply.commands
- name: Getting the Div Commands
   set_fact:
            div.commands: "{{div.commands + [ item ]}}"
   with_lines: "cat {{ {{playbook_dir}}/testing/files/data.txt }}"
   when: item is search('^div')
 - debug:
        var: div.commands
执行角色的代码 测试码

 - name: Main Program
   hosts: localhost
   roles:
          - testing
我以为我会得到add.commands的add命令,也会得到其他命令的add命令,但是我得到了以下错误

"msg": "The variable name 'add.commands' is not valid. Variables must start with a letter or underscore character, and contain only letters, numbers and underscores."

有谁能告诉我如何解决这个错误,以及为什么会发生这个错误。

这是意料之中的,错误清楚地说明了这一点

同样根据ansible

变量名应该是字母、数字和下划线。变量 应该总是以字母开头


所以。不能是变量名的一部分。

那么,您能告诉我如何访问“添加”的commands变量吗?我尝试使用add['commands'],但它给出了相同的错误