[英]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.