【Linux32-5】Ansible变量详解

本文详细介绍了Ansible中的变量使用,包括如何创建有效变量名、变量的范围和优先级、在不同场景下设定变量的方式,如playbook、文件、列表和字典变量,以及主机清单、目录中的变量设定。此外,还探讨了注册变量、引用嵌套事实变量和魔术变量的用法,提供了解析和使用Ansible变量的全面指南。
摘要由CSDN通过智能技术生成


变量详解官方文档



1. 变量简介


1.1 创建有效的变量名


  • 只能包含字母,数字和下划线
  • 不能出现Python关键字或剧本关键字
  • 不能以数字开头

1.2 变量范围


Global
由配置,环境变量和命令行设置
Play
每次播放并包含结构,vars条目(vars; vars_files; vars_prompt),角色默认值和vars
Host
直接与主机相关联的变量,例如 inventory清单,include_vars,facts 或已注册的任务输出
  • 优先级:Host>Play>Global

1.3 变量的优先级


通常,Ansible优先使用最近定义,更活跃且定义范围更广的变量。角色内默认文件夹中的变量很容易被覆盖。角色的vars目录中的所有内容都会覆盖名称空间中该变量的先前版本。主机和/或库存变量将覆盖角色默认值,但显式包含(如vars目录)或include_vars任务将覆盖inventory库存变量


优先级从 低→高
1
命令行值不是变量:-u my_user
2
role defaults(在role / defaults / main.yml中定义)
3
inventory file or script group vars
4
inventory group_vars/all
5
playbook group_vars/all
6
inventory group_vars/*
7
playbook group_vars/*
8
inventory file or script host vars
9
inventory host_vars/*
10
playbook host_vars/*
11
host facts / cached set_facts
12
play vars
13
play vars_prompt
14
play vars_files
15
role vars(在role / vars / main.yml中定义)
16
block变量(仅适用于block中的任务)
17
任务变量(仅适用于任务)
18
include_vars
19
set_facts /已注册的变量
20
角色(和include_role)参数
21
包含参数
22
额外的变量
(例如-e "user=my_user")(始终优
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值