[英]Is include_vars and and vars in ansible are same in their usage
我对include_vars
和vars
的用法感到困惑
例:
- name: "Testing include_vars"
include_vars: "roles/testrole/vars/test.yml"
上面的模块有效,因为我认为include_vars
是一个预定义的模块,可以包含给定文件中的变量。
以下无效:
- name: "Defining variables locally"
vars:
testvar : "value1"
它引发以下错误:
ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path
我了解没有采取任何措施的错误。 但是,为什么不创建任务就无法在本地指定变量。 为什么变量必须与动作一起使用-背后的逻辑或哲学是什么?
尽管没有其他动作也可以设置set_facts,因为set_facts
本身是一个模块,但是没有模块可以在本地设置变量。 为什么?
如果您还可以添加一个为什么不能在单个任务上添加多个操作的原因,例如:同一任务中的set_facts和shell命令?
vars不是模块。 这是变量的声明。 要解决该错误,请在任务中添加一个模块。 例如调试。
- name: "Defining variables locally"
vars:
testvar: "value1"
debug:
var: testvar
您可能需要查看Playbook简介 。
回答你的问题
为什么没有模块只定义变量?
因为灵活性。 开始使用问题“配置数据从何而来”计划您的体系结构。 您可能需要查看变量优先级:我应该在哪里放置变量? 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.