Ansible 错误:任务包含一个带有未定义变量的选项

问题描述 投票:0回答:1

以下是我完整的 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 与“all”不匹配

玩[本地主机]


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

任务[set_fact] ****************************************************** ****************************************************** ****************************************************** ********* 致命:[localhost]:失败! => {"msg": "该任务包含一个选项 带有未定义的变量。错误是:“dict object”没有 属性 u'src' 错误似乎位于 '/app/helpA.yml': 行 12,第 6 栏,但可能 位于文件的其他位置,具体取决于具体情况 语法问题。 有问题的行似乎是: - 姓名: \“设置事实\” ^ 这里 “}

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

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

ansible syntax-error runtime-error
1个回答
0
投票

基本上,您正在查找字典

vars
来查找密钥
src
(这是您的文件扩展名),但它不存在 – 学分:Matt P

此外,您不提供库存会导致:

 [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
© www.soinside.com 2019 - 2024. All rights reserved.