Как продолжение этого вопроса Как прочитать определенную часть файла в 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."
Может кто-нибудь сказать мне, как устранить эту ошибку и почему она вообще произошла.