ansible中的Is include_变量和and变量的用法相同

ansible中的Is include_变量和and变量的用法相同,ansible,ansible-facts,Ansible,Ansible Facts,我对include_vars和vars的用法感到困惑 示例: - name: "Testing include_vars" include_vars: "roles/testrole/vars/test.yml" 上面的模块可以工作,因为我认为include\u vars是一个预定义的模块,用于包含给定文件中的变量 以下选项不起作用: - name: "Defining variables locally" vars: testvar : "value1" 它抛出以下错误:

我对
include_vars
vars
的用法感到困惑

示例:

- name: "Testing include_vars"
  include_vars: "roles/testrole/vars/test.yml"
上面的模块可以工作,因为我认为
include\u 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\u facts
本身是一个模块,但没有模块可以在本地设置变量。为什么?

如果您还可以添加为什么不能在单个任务上添加多个操作,例如:在同一个任务中设置事实和shell命令?

vars不是一个模块。这是我的宣言。要解决此错误,请向任务中添加模块。例如调试

- name: "Defining variables locally"
  vars: 
    testvar: "value1"
  debug:
    var: testvar
您可能需要查看该文档

回答你的问题

为什么没有只定义变量的模块

因为它的灵活性。从“配置数据来自何处?”开始规划您的体系结构。您可能需要查看。

vars不是一个模块。这是我的宣言。要解决此错误,请向任务中添加模块。例如调试

- name: "Defining variables locally"
  vars: 
    testvar: "value1"
  debug:
    var: testvar
您可能需要查看该文档

回答你的问题

为什么没有只定义变量的模块


因为它的灵活性。从“配置数据来自何处?”开始规划您的体系结构。您可能需要查看。

Hi.。为什么不存在仅用于定义变量的模块。如果定义变量的范围是全局的,即所有后续任务的范围,那么为什么它必须与另一个模块一起使用?变量的范围仅限于一个剧本。我已经更新了答案。嗨..为什么没有模块存在只是为了定义变量。如果定义变量的范围是全局的,即所有后续任务的范围,那么为什么它必须与另一个模块一起使用?变量的范围仅限于一个剧本。我已经更新了答案。