Импортировать переменные из файла yaml в ansible - PullRequest
2 голосов
/ 06 января 2020

Я пытаюсь импортировать переменные из файла yaml и использовать их в роли, однако я пытаюсь импортировать переменные так, чтобы любой любой файл задачи, который я импортирую в роли, также мог без проблем использовать эту же переменную. Итак, простыми словами я пытаюсь создать своего рода репо для переменных, которые могут использовать несколько ролей или файлов задач, и значение может быть сохранено. код, который я нашел из документации:

  include_vars:
    dir: /projects/Variable_files
    files_matching: 
    - default.yml 
    - debian.yml
    name: default_vars

, но я получаю эту ошибку:

ОШИБКА! include_vars не является допустимым атрибутом для Play. Ошибка, по-видимому, находится в /projects/wordpress.yml: строка 2, столбец 3, но может быть в другом месте файла в зависимости от точной синтаксической проблемы.

1 Ответ

0 голосов
/ 06 января 2020

Да sh - отсутствует. Правильный синтаксис:

- include_vars:
    dir: /projects/Variable_files
    files_matching: '^(.*).yml$'
    name: default_vars

Кроме того, параметр files_matching является строкой с регулярным выражением. Например, ^(.*).yml$ для сопоставления всех файлов с расширением yml. См. include_vars .

Можно использовать first_found , чтобы выбрать файл из списка. Например, см. Generi c способ составления списка установленных пакетов с использованием Ansible.


Несмотря на то, что параметр files_matching должен быть строкой, список работает тоже

- include_vars:
    dir: /projects/Variable_files
    files_matching: 
    - default.yml 
    - debian.yml
    name: default_vars
...