Ansible中的变量

变量

变量要求:

  • 1.只能包括下划线、数字、字母
  • 2.只能以下划线或字母为开头
    变量级别:
  • 全局变量:在执行命令行或全局配置文件中设置、
  • play变量:在playbook剧本中和相关的结构中进行设定
  • 主机变量:由清单、事实中收集或注册的任务

play变量

在yml文件中设定变量:
在这里插入图片描述
在这里插入图片描述

在指定文件中设定变量:

在这里插入图片描述

在这里插入图片描述

主机变量与清单变量

在/home/westos/inventory清单内进行变量编辑
在这里插入图片描述在yml剧本中使用变量
在这里插入图片描述
在这里插入图片描述
group_vars:清单变量
在这里插入图片描述
在这里插入图片描述
host_vars:主机变量
在这里插入图片描述

在这里插入图片描述

使用数组设定变量

在这里插入图片描述

在这里插入图片描述

命令优先级最高,用命令覆盖变量

在这里插入图片描述

魔法变量

命令指定对象
hostvarsabsible软件内部信息
group_names当前受控主机所在组
groups列出清单中所有组和主机
inventory_hostname包含清单中配置的当前授权管理主机的名称

hostvars
在这里插入图片描述
group_names
在这里插入图片描述
groups
在这里插入图片描述inventory_hostname

在这里插入图片描述

注册变量

registet
在这里插入图片描述
在这里插入图片描述

事实变量

ansible_facts.ens160.ipv4.address:受控主机的ipv4地址
在这里插入图片描述
ansible_facts.fdqn:受控主机的hostname
在这里插入图片描述

JINJA2模板

JINJA2介绍:jinja2是Python下一个被广泛应用的模板引擎,他的设计思想来源于Django的模板引擎,并拓展了其语法和一系列强大功能,其中最显著的是增加了沙箱执行功能和可选的自动转义功能
j2模板书写规则

{# /etc/hosts line #}
127.0.0.1    localhost
{{ansible_facts['all_ipv4_addresses']}}  {{ansible_facts['fqdn']}}

在这里插入图片描述

在这里插入图片描述

jinja2的for循环

vim users.yml
users:
  - westos
  - linux
  - ansible
vim test.j2
{% for NAME in users %}
{{ NAME }}
{%endfor%}

在这里插入图片描述
在这里插入图片描述

jinja的if判定

{% for NAME in users if not NAME == "ansible" %}
User number {{loop.index}} - {{NAME}}
{%endif%}

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值