7.Ansible:Jinja2模板
[toc]
Ansible Jinja2模板概述
什么是jinja2模板
jinja2是Python的全功能模板引擎
- Jinja2与Ansible啥关系
- Ansible通常会使用jinja2模板来修改被管理主机的配置文件等,在saltstack中同样会使用到jinja2
- Ansible如何使用Jinja2
- 使用Ansible的jinja2模板也就是使用template模块,该模块和copy模块一样,都是讲文件复制到远端主机上去,但是区别在于,template模块可以获取到文件中的变量,而copy则是原封不动的把文件内容复制过去。
- 之前我们在推送rsync的backup脚本时,想把脚本中的变量名改成主机名,如果使用copy模块则推送过去的就是,不变,如果使用template,则会变成对应的主机名。
- Ansible使用Jinja2注意事项
- Ansible允许jinja2模板中使用条件判断和循环,但是不允许在playbook中使用。 注意:不是每个管理员都需要这个特性,但是有些时候jinja2模块能大大提高效率。
Ansible Jinja2模板使用
Jinja2基本语法
- 输出变量值,会输出自定义的变量值或facts
- playbook文件使用template模块
- 模板文件里面变量使用,比如或使用facts
Jinja2逻辑判断
1 | # 循环表达式 |
jinja2示例
jinja2部署keepalived
1 | # 使用jinja2推送keepalive配置文件 |
jinja2部署负载均衡
1 | upstream {{ wordpress_domain }} { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 奥利奥の麦旋风!