Próbuję importować zmienne z pliku YAML i używać ich w roli, jednak próbuję zaimportować zmienne w sposób, w jaki każdy plik zadań, który importuję w roli może również użyć tej samej zmiennej bez problemu. W prostych słowach próbuję stworzyć rodzaj repo dla zmiennych, które można użyć wielu plików ról lub zadań, a wartość może zostać zachowana. Kod, który znalazłem z dokumentacji:

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

Ale otrzymuję ten błąd:

BŁĄD! "Naciski_vars" nie jest ważnym atrybutem gry. Błąd wydaje się być w "/projects/wordpress.yml": Linia 2, kolumna 3, ale może być gdzie indziej w pliku w zależności od dokładnego problemu składni.

2
kamal87 6 styczeń 2020, 08:59

1 odpowiedź

Najlepsza odpowiedź

Brakuje kaszy -. Prawidłowa składnia to

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

Oprócz tego parametr files_matching jest ciągiem z wyrażeniem regularnym. Na przykład ^(.*).yml$, aby dopasować wszystkie pliki za pomocą rozszerzenia yml. Zobacz obejmuje_vars.

Możliwe jest użycie First_Found, aby wybrać plik z listy. Na przykład, zobacz Ogólny sposób na listę zainstalowanych pakietów za pomocą ansyblowego .


Pomimo faktu, że parametr files_matching powinien być ciągiem lista również działa

- include_vars:
    dir: /projects/Variable_files
    files_matching: 
    - default.yml 
    - debian.yml
    name: default_vars
0
Vladimir Botka 6 styczeń 2020, 10:15