Ошибка при доступе к переменным в файле vars в роли - PullRequest
0 голосов
/ 18 июня 2019

Как продолжение этого вопроса Как прочитать определенную часть файла в ansible .Я пытаюсь сделать то же самое, но с помощью ролей.Переменные хранятся в файлах 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

Код для выполнения роли testing.yml

 - name: Main Program
   hosts: localhost
   roles:
          - testing

Я думал, что получу команды добавления для add.commands и аналогично для других, но я получаю следующую ошибку

"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."

Может кто-нибудь сказать мне, как устранить эту ошибку и почему она вообще произошла.

1 Ответ

0 голосов
/ 18 июня 2019

Это, как и ожидалось, и в ошибке четко указано, что.

Также в соответствии с ответом,

Имена переменных должны быть буквами, цифрами и подчеркиванием.Переменные всегда должны начинаться с буквы.

Так что . не может быть частью имени переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...