在Ansible yml代码中存在文件时设置路径
我试图只在文件存在时设置var,下面是我的一个尝试在Ansible yml代码中存在文件时设置路径,ansible,yaml,Ansible,Yaml,我试图只在文件存在时设置var,下面是我的一个尝试 --- - hosts: all tasks: - stat: path: '{{ srch_path_new }}/bin/run' register: result - vars: srch_path="{{ srch_path_new }}" when: result.stat.exists 这也没用 - vars: srch_path:"{{ srch_path_new }}" 您正在寻找
---
- hosts: all
tasks:
- stat:
path: '{{ srch_path_new }}/bin/run'
register: result
- vars: srch_path="{{ srch_path_new }}"
when: result.stat.exists
这也没用
- vars: srch_path:"{{ srch_path_new }}"
您正在寻找的任务被称为ansible,它是ansible用来声明任意“主机变量”的机制,有时被称为“hostvars”,或者(同样令人困惑的是)“facts” 语法是:
- set_fact:
srch_path: "{{ srch_path_new }}"
when: result.stat.exists
此外,虽然vars:
是任务中的合法关键字,但其语法与set\u事实:
(或剧本上的vars:
)相同:yaml字典,不是键:值
对。例如:
- debug:
msg: hello, {{ friend }}
vars:
friend: Jane Doe
请注意,
vars:
任务上只存在该任务您要查找的任务被调用,并且是ansible用来声明任意“主机变量”的机制,有时称为“hostvars”,或者(也令人困惑的是)“facts”
语法是:
- set_fact:
srch_path: "{{ srch_path_new }}"
when: result.stat.exists
此外,虽然vars:
是任务中的合法关键字,但其语法与set\u事实:
(或剧本上的vars:
)相同:yaml字典,不是键:值
对。例如:
- debug:
msg: hello, {{ friend }}
vars:
friend: Jane Doe
请注意,任务上的变量只存在于该任务中如果某项任务不起作用,请尝试包含有意义的错误。在这种情况下,这不起作用的原因是
tasks
没有vars
值。请看这里的基本结构应该是什么样子。如果有些东西不起作用,请尝试包含有意义的错误。在这种情况下,这不起作用的原因是tasks
没有vars
值。请看这里的基本结构应该是什么样子。