Ansible jinja2模板详解

 Ansible使用Jinja2模板来修改被管理主机的配置文件。例如给10台远程主机都装上httpd服务,但是要求每个服务器的端口不一样,如何解决?

使用ansible的jinja2模板,也就是template模块。该模块和copy的工作原理很像,都是讲某个文件复制到远端主机上去,但是区别在于template模块可以获取变量的值,而copy则是原封不动的把文件内容复制过去。比如可以针对不同的主机定义不同的变量,template会在将配置文件分发出去前读取变量到jinja2模板,然后分发到不同的被管理主机上。

Ansible允许jinja2模板中使用条件判断和循环,但是不允许在playbook中使用。不是每个管理员都需要这个特性,但是有些时候jinja2模板能大大提高你的效率。

1、jinja2的分隔符

变量和逻辑表达式会被放在tag或分隔符中间。

jinja2模板使用:

  • {% EXPR %}作为循环或条件判断表达式;
  • { { EXPR }}输出变量的值;
  • {# COMMENT #}表示注释;

2、创建jinja2模板

Jinja2是基于Python书写的模板引擎。功能比较类似于PHP的smarty模板。

  • jinja2 文件以 `.j2` 为后缀, 也可以不写后缀。
  • jinja2 中存在 三种
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wespten

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

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

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

打赏作者

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

抵扣说明:

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

余额充值