playbook常见的变量分类

在Playbook中常用的几种变量包含一下几种情况:

  1. 在Playbook中用户自定义的变量。—var*|other
  2. 用户无需自定义,Ansible会在执行Playbook之前去全程主机上搜集的关于远程节点系统信息的变量。—ansible setup模块
  3. 在文件模版中,可以直接使用上述两种变量
  4. 把task的运行结果作为一个变量来使用,这个变量叫做注册变量。—register
  5. 为了使Playbook更灵活、通用性更强,允许用户在执行的时候传入变量的值,这个时候就需要用到额外变量

Ansible变量优先级(由高到低)

extra vars (在命令行中使用 -e)优先级最高:ansible-playbook -e var=value
task变量
block变量
role中定义的变量和include变量
set_fact
registered变量
vars_files
var_prompt
play变量
host facts
playbook中设置的host_vars
playbook中设置的group_vars
inventory中设置的host_vars
inventory中设置的group_vars
inventory变量
role中defaults/main.yml中定义的变量