Могу ли я включить несколько задач в include_tasks из tasks / main.yml? - PullRequest
0 голосов
/ 08 ноября 2019

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

ERROR! unexpected parameter type in action: <class 'ansible.parsing.yaml.objects.AnsibleSequence'>

...

The offending line appears to be:


- name: install and configure [application]
  ^ here

Вот мой файл tasks / main.yml в роли:

---

- name: install and configure [application]
  include_vars:
    - dependencies.yml
    - directories.yml
    - installations.yml
  include_tasks:
    - pre-setup.yml
    - [application-23].yml
    - database.yml
    - [application-4].yml
    - update.yml
    - additional-components.yml
    - ldap.yml
    - test.yml

Я подозреваю, что мое форматирование или синтаксис неверны, но я не совсем уверен, как это исправить.

Iв настоящее время я предпочел бы сделать мои переменные доступными глобально.

1 Ответ

1 голос
/ 08 ноября 2019
  1. Ответственная задача может выполнять только одно действие, т. Е. Содержать только один вызов модуля
  2. include_tasks модуль не принимает список в file /параметр произвольной формы, только одно имя файла
  3. Модуль include_vars может в конечном итоге прочитать несколько файлов, если вы загрузите полный каталог с опцией dir.
  4. Есть имена файлов, которые выглядят немного странно в ваших задачах и могут вызвать ошибки. Ваши имена файлов действительно содержат квадратные скобки ([])? Они являются маркерами для списков и могут быть интерпретированы как таковые.

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

- name: Include variables
  include_vars: "{{ item }}"
  loop:
    - dependencies.yml
    - directories.yml
    - installations.yml

- name: Play needed tasks in order
  include_tasks: "{{ item }}"
  loop:
    - pre-setup.yml
    - application-23.yml
    - database.yml
    - application-4.yml
    - update.yml
    - additional-components.yml
    - ldap.yml
    - test.yml

Между тем, я предлагаю вам немного почитать документацию и, возможно, познакомиться с концепцией ролей , так как на первый взгляд вышеприведенное не выглядит как хороший дизайн.

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