首页 > 解决方案 > Ansible 错误:任务包含一个带有未定义变量的选项

问题描述

下面是我完整的 helpA.yml 剧本的样子:

- hosts: localhost

  tasks:
   - name: "Construct File Path {{ inventory_hostname }} before Deployment."
     tags: validate
     include_vars:
       file: "{{ item }}"
     with_fileglob:
        - "vars/{{ Layer }}_*.yaml"

   - name: "set_fact"
     tags: validate
     set_fact:
       fpath_APP: "{{ fpath_APP + [ BASEPATH ~ '/' ~ vars[item.split('.')[1]] ~ '/' ~ item | basename ] }}"
     when: Layer == 'APP'
     with_items:
       - "{{ Source_Filenames.split(',') }}"
     vars:
       fpath_APP: []

   - debug: var=fpath_{{ Layer }}

我在运行 yml 时遇到以下语法错误。

$ ansible-playbook /app/helpA.yml --tags validate -e "Source_Filenames=/tmp/logs/filename1.src,/tmp/logs/33211.sql,/app/Jenkins/file1.mrt Layer=APP" [警告]:提供的主机列表为空,只有 localhost 可用。请注意,隐式本地主机不匹配“全部”

播放 [本地主机]


任务 [在部署前构造文件路径 localhost。] **************************************** ****************************************************** ******* 好的:[localhost] => (item=/app/vars/APP_BASE_vars.yaml)

任务 [set_fact] ************************************************ ****************************************************** ****************************************************** *************致命:[本地主机]:失败!=> {"msg": "该任务包含一个带有未定义变量的选项。错误是:'dict object' has no attribute u'src'\n\n错误似乎在 '/app/helpA.yml' : 第 12 行第 6 列,但可能\n位于文件中的其他位置,具体取决于确切的语法问题。\n\n违规行似乎是:\n\n\n - name: \"set_fact\"\n ^ here \n"}

播放回顾 ************************************************ ****************************************************** ****************************************************** **************** 本地主机:好的=1 更改=0 无法访问=0
失败=1 跳过=0 获救=0 忽略=0

我正在使用最新版本的 ansible 和 python 2.7.5

标签: ansiblesyntax-errorruntime-error

解决方案


推荐阅读