文章目录
1. 变量简介
1.1 创建有效的变量名
- 只能包含字母,数字和下划线
- 不能出现Python关键字或剧本关键字
- 不能以数字开头
1.2 变量范围
|
由配置,环境变量和命令行设置 |
|
每次播放并包含结构,vars条目(vars; vars_files; vars_prompt),角色默认值和vars |
|
直接与主机相关联的变量,例如 inventory清单,include_vars,facts 或已注册的任务输出 |
- 优先级:Host>Play>Global
1.3 变量的优先级
通常,Ansible优先使用最近定义,更活跃且定义范围更广的变量。角色内默认文件夹中的变量很容易被覆盖。角色的vars目录中的所有内容都会覆盖名称空间中该变量的先前版本。主机和/或库存变量将覆盖角色默认值,但显式包含(如vars目录)或
include_vars
任务将覆盖inventory库存变量
|
|
---|---|
|
命令行值不是变量:-u my_user |
|
role defaults(在role / defaults / main.yml中定义) |
|
inventory file or script group vars |
|
inventory group_vars/all |
|
playbook group_vars/all |
|
inventory group_vars/* |
|
playbook group_vars/* |
|
inventory file or script host vars |
|
inventory host_vars/* |
|
playbook host_vars/* |
|
host facts / cached set_facts |
|
play vars |
|
play vars_prompt |
|
play vars_files |
|
role vars(在role / vars / main.yml中定义) |
|
block变量(仅适用于block中的任务) |
|
任务变量(仅适用于任务) |
|
include_vars |
|
set_facts /已注册的变量 |
|
角色(和include_role)参数 |
|
包含参数 |
|
额外的变量 (例如 -e "user=my_user" )(始终优 |