Ansible Jinjia2模块
Ansible Template使用jinjia2格式。
还可以使用jinjia2的filter来实现跟进一步的功能扩展:
| to_json | to_nice_json | to_yaml | to_nice_yaml
基本语法:
{% for i in range(1,10)%} server 172.16.1.{{i}}; {% endfor %} #判断 {% if ansible_fqdn == "web01" %} echo 123 {% elif ansible_fqdn == "web02" %} echo 456 {% else %} echo 789 {% endif %}
template模块
- name: Configure nginx Server template: src: /etc/conf.j2 dest: /etc/test.conf
jinjia2模板
# jinjia2可以直接使用Ansible的魔法变量:hostvars groups inventory_hostname group_names
# jinjia2也可以直接使用Ansible Facts的变量
{% for host in hosts %} {{ host }} {% endfor %}
示例1 生成host文件
yaml文件
--- - name: tempalte hosts: all tasks: - name: Create hosts template: src: template/hosts.j2 dest: /tmp/hosts when: '"dev" in group_names' # 只有dev组的才执行
template文件
{% for host in groups['all'] %} {{ hostvars[host]['ansible_facts']['default_ipv4']['address'] }} {{ hostvars[host]['ansible_facts']['fqdn'] }} {{ hostvars[host]['ansible_facts']['hostname'] }} {% endfor %}
官网链接:
filters: https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2018-03-29 Grafana连接Prometheus监控Docker平台