Linux Ansible-Jinjia2模板

news/2025/1/8 18:11:03/

目录

jinja2模板语法

部署jinja2模板

jinja2逻辑表达式


jinja2是基于Python书写的模块引擎,ansible通常会使用jinja2模块结合template模块来修改被管理主机的配置文件

一般使用ansible的事实变量或魔法变量编写一个jinja2模板文件,然后使用template模板调用jinja2模板文件,在渲染jinja2模板时将其变量替换为此被管理节点上的此变量对应的值

注意事项

Ansible允许jinja2模板使用条件判断语句和循环语句,但是不允许在playbook中使用(剧本中通过loop对象来实现)

jinja2模板语法

jinja2模板以.j2为后缀(也可以不写后缀)

jinja2模板主要由注释、变量和逻辑表达式组成

       注释包含在{# #}中

变量被包含在 {{ var }} 中

       逻辑表达式通过 {% %}书写

部署jinja2模板

通过在jinja2模板引用事实变量,提取出主机事实变量所对应的值

vim host.j2
Welcome to  {{ ansible_facts['fqdn'] }} {{ ansible_facts['default_ipv4']['address'] }}

通过template模块部署到受管主机上(支持将控制节点中的本地文件转移到受管主机)

Template模块语法:src:指定来源jinja2模板dest:指定要在目标主机上创建的文件vim hosts.yml
---
- name: template and jinja2hosts: webtasks:- name: templatetemplate:src: host.j2dest: /etc/hosts.txt

进行验证

ansible web -m shell -a "cat /etc/hosts.txt"

jinja2逻辑表达式

条件判断语句(使用if语句提供判断)

#格式{% if 判断条件 %}{{ 满足条件执行的内容 }}{% elif 判断条件 %}{{ 满足条件执行的内容 }}{% else %}{{ 以上条件都不满足执行的内容 }}{% endif%}#例子-如果被管理节点的主机fqdn为node1,则输出echo node1;如果不为node1,则输出此管理节点的fqdn和ipv4地址{% if ansible_facts.fqdn == “node1” %}echo node1{% else %}hosts is {{ ansible_facts.fqdn }} and {{ ansible_facts.default_ipv4.address }}{% endif %}

循环控制语句(使用for语句提供循环)

#格式{% for 循环语句 %}{{ 每次循环执行的内容 }}{% endfor%}#例子  提取所有主机各自对应的hostname值{% for host in groups['all'] %}{{ hostvars[host]['ansible_facts']['hostname']}}                                          {% endfor %}


http://www.ppmy.cn/news/55481.html

相关文章

TCP协议的特性

目录 TCP协议的特性TCP的首部长度2.TCP如何实现可靠传输2.1 确认应答 2.2 超时重传3.建立连接3.1 三次握手3.2 四次挥手 4.滑动窗口5.流量控制6.拥塞控制7.延时应答8.捎带应答9.面向字节流10.异常情况1.进程关闭 /进程崩溃2.主机关机(正常流程关机)3.主机掉电 TCP协议的特性 TC…

【Verilog HDL】FPGA-Verilog文件的基本结构

🎉欢迎来到FPGA专栏~Verilog文件的基本结构 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大…

倾斜摄影超大场景的三维模型在网络发布应用遇到常见的问题浅析

倾斜摄影超大场景的三维模型在网络发布应用遇到常见的问题浅析 倾斜摄影超大场景的三维模型在网络发布应用时,常见的问题包括: 1、加载速度慢。由于数据量巨大,网络发布时需要将数据文件分割成多个小文件进行加载,这可能会导致页…

【Java笔试强训 3】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥最长的…

SAM(2023)-分割万物

文章目录 摘要算法数据引擎实验7.1 零样本单点生成mask7.2 零样本边缘检测7.3. 零样本目标Proposals7.4. 零样本实例分割7.5. 零样本文本生成Mask7.6. 消融实验 讨论限制:结论: 论文: 《Segment Anything》 github: https://github.com/facebookresear…

辨析 可交付成果验收与项目验收

可交付成果验收与项目验收 辨析 可交付成果验收 1、过程:确认范围 2、做什么:正式验收已完成的项目可交付成果 3、怎么做: PM发起并组织,由客户或发起人审查从控制质量过程输出的核实的可交付成果,确认这些可交付成果…

IPsec中IKE与ISAKMP过程分析(主模式-消息5和消息6)

IPsec中IKE与ISAKMP过程分析(主模式-消息1)_搞搞搞高傲的博客-CSDN博客 IPsec中IKE与ISAKMP过程分析(主模式-消息2)_搞搞搞高傲的博客-CSDN博客 IPsec中IKE与ISAKMP过程分析(主模式-消息3)_搞搞搞高傲的博客…

Small Tip: 怎么去Schedule一个Analysis for Office的workbook

workbook的query不能是本地的,也就是说不能是在包$Tmp里面的。这种的没办法在BO里面用SSO。也就没办法Schedule。 前提条件有: 1.BO和BW系统的SSO配置得OK。 如果没有SSO,那么每次打开workbook就会有一个要登录BW的弹窗,这样是…