⾃动化运维利器 Ansible-变量

按顺序食用,口味更佳
( 1 ) ⾃动化运维利器Ansible-基础
( 2 ) ⾃动化运维利器 Ansible-Playbook
( 3 ) ⾃动化运维利器 Ansible-变量
( 4 ) ⾃动化运维利器AnsiblePlaybook的任务控制
( 5 ) ⾃动化运维利器 Ansible-Jinja2
( 6 ) ⾃动化运维利器 Ansible-最佳实战

ansible作为一门特殊的语言,肯定要涉及到变量定义、控制结构的使⽤等特性。

一、变量命名规则

变量的名字由字母下划线数字组成,必须以字⺟开头保留关键字不能作为变量名称,具体关键字比较多,不在列举。

正确的变量命名: aimyon_36,ztmy_1
错误的变量命名:_aaa ,2_bb

二、变量的类型

根据变量的作⽤范围⼤体的将变量分为:

  • 全局变量
  • 剧本变量
  • 资产变量

2.1 全局变量

全局变量,使⽤ansible 或使⽤ansible-playbook 时,手动通过 -e 参数传递给Ansible 的变量。

通过ansible 或 ansible-playbook 的 help 帮助, 可以获取具体格式使⽤⽅式:

 ansible -h | grep var
 
-e EXTRA_VARS, 
--extra-vars=EXTRA_VARS set additional variables as key=value or YAML/JSON

ansible-playbook -h | grep var

-e EXTRA_VARS, 
--extra-vars=EXTRA_VARS set additional variables as key=value or YAML/JSON

上述的help比较难懂,通过下边的举例说明。

传统的kv形式

 ansible all -i localhost, -m debug \
 -a "msg='my key is {
   
   { key }}'" -e "key=value"

传递YAML/JSON的形式

cat a.json
{
   
   "name":"qfedu","type":"school"}

ansible all -i localhost, -m debug \
-a "msg='name is {
   
   { name }}, type is {
   
   { type }}'" -e @a.json

2.3 剧本变量

该种变量和playbook有关,定义在playbook中,大多数场景下使用这种方式。

此处的playbook可以理解为inventory清单,可以定义在host.ini文件中。

通过PLAY属性vars定义:

---
- name: test play vars
  hosts: all
  vars:
  	user: lilei
  	home: /home/lilei
  tasks:
 	- name: create the user {
   
   {
   
    user 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aimyon_36

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值