以下是我完整的 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
基本上,您正在查找字典
vars
来查找密钥 src
(这是您的文件扩展名),但它不存在 – 学分:Matt P
此外,您不提供库存会导致:
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'