我想从主任务文件中包含多个变量和任务,但是当我尝试这样做时会收到以下错误:
ERROR! unexpected parameter type in action: <class 'ansible.parsing.yaml.objects.AnsibleSequence'>
...
The offending line appears to be:
- name: install and configure [application]
^ here
以下是我的task / 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
我怀疑我的格式或语法无效,但是我不确定如何解决。
我希望此时使变量全局可用。
答案 0 :(得分:1)
include_tasks
module不接受file
/自由格式参数中的列表,仅接受一个文件名dir
选项加载完整目录,则include_vars
module最终可以读取多个文件。[]
)?它们是列表的标记,可能会这样解释。根据我到目前为止的信息,这是我可以用来解决当前失败任务的全部建议:
- 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
同时,我建议您花一些时间阅读文档,并可能熟悉roles的概念,因为上述内容乍看之下并不是一个好的设计。