ansible jinja2模板概述

ansible允许jinja2模板中使用条件判断和循环,但是不允许在playbook中使用

ansible jinja2模板使用

基本语法

  1. {{ EXPR }}输出变量值,会输出自定义的变量值或facts
  2. 1)playbook文件使用template模块
  3. 2)模板文件里面变量使用{{名称}},比如{{PORT}}或使用facts

jinja2模板逻辑判断

  1. #循环表达式
  2. {% for i in EXPR %}
  3. {% endfor %}
  4. #条件判断
  5. {% if EXPR %}
  6. {% elif EXPR %}
  7. {% else %}
  8. {% ednif %}
  9. #注释
  10. {# COMMENT #}

jinja2示例

  • 编辑playbook
  1. [root@m01 ~]# vim jinja2.yml
  2. - hosts: web_group
  3. tasks:
  4. - name: Copy Template File
  5. template:
  6. src: ./motd.j2
  7. dest: /etc/motd
  • 准备motd.j2
  1. [root@m01 ~]# vim motd.j2
  2. Welcome to {{ ansible_fqdn }}
  3. This system total mem is : {{ ansible_memtotal_mb }} MB
  4. This system free mem is: {{ ansible_memfree_mb }} MB
  • 执行playbook

ansible jinja2管理nginx

使用playbook推送文件

1.编辑playbook

  1. [root@m01 ~]# vim lb.yml
  2. - hosts: lb_group
  3. vars:
  4. http_port: 80
  5. server_name: www.drz.com
  6. tasks:
  7. - name: copy
  8. template:
  9. src: ./www.drz.com.conf.j2
  10. dest: /etc/nginx/conf.d/www.drz.com.conf
  11. notify: reload nginx
  12. handlers:
  13. - name: reload nginx
  14. systemd:
  15. name: nginx
  16. state: reloaded

2.准备配置文件

  1. [root@m01 ~]# vim lb.yml
  2. - hosts: lb_group
  3. vars:
  4. http_port: 80
  5. server_name: www.drz.com
  6. tasks:
  7. - name: copy
  8. template:
  9. src: ./www.drz.com.conf.j2
  10. dest: /etc/nginx/conf.d/www.drz.com.conf
  11. notify: reload nginx
  12. handlers:
  13. - name: reload nginx
  14. systemd:
  15. name: nginx
  16. state: reloaded

ansible jinja2管理keepalived

keepalived原配

  1. #keepalived master 配置文件
  2. global_defs {
  3. router_id lb01
  4. }
  5. vrrp_instance VI_1 {
  6. state MASTER
  7. interface eth0
  8. virtual_router_id 50
  9. priority 150
  10. advert_int 1
  11. authentication {
  12. auth_type PASS
  13. auth_pass 1111
  14. }
  15. virtual_ipaddress {
  16. 10.0.0.3
  17. }
  18. }
  19. #keepalived backup配置文件
  20. global_defs {
  21. router_id lb02
  22. }
  23. vrrp_instance VI_1 {
  24. state BACKUP
  25. interface eth0
  26. virtual_router_id 50
  27. priority 100
  28. advert_int 1
  29. authentication {
  30. auth_type PASS
  31. auth_pass 1111
  32. }
  33. virtual_ipaddress {
  34. 10.0.0.3
  35. }
  36. }

推送keepalived配置文件

  1. [root@m01 ~]# vim keepalived.yml
  2. - hosts: lb_group
  3. tasks:
  4. - name: copy file
  5. template:
  6. src: ./keepalived.j2
  7. dest: /etc/keepalived/keepalived.conf
  8. notify: restart keepalived
  9. handlers:
  10. - name: restart keepalived
  11. systemd:
  12. name: keepalived
  13. state: restarted

准备keepalived配置文件

  1. [root@m01 ~]# vim keepalived.j2
  2. global_defs {
  3. router_id {{ ansible_fqdn }}
  4. }
  5. vrrp_instance VI_1 {
  6. {% if ansible_fqdn == "lb01" %}
  7. state MASTER
  8. priority 150
  9. {% else %}
  10. state BACKUP
  11. priority 100
  12. {% endif %}
  13. interface eth0
  14. virtual_router_id 50
  15. advert_int 1
  16. authentication {
  17. auth_type PASS
  18. auth_pass 1111
  19. }
  20. virtual_ipaddress {
  21. 10.0.0.3
  22. }
  23. }

ansible jinja2模板概述的更多相关文章

  1. Ansible Jinja2 模板使用

    Ansible Jinja2 模板使用.语法与使用案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: ...

  2. 5.Ansible Jinja2 模板

    1.jinja2渲染NginxProxy配置文件 jinja2 房屋建筑设计固定的 jinja2模板与Ansible关系 Ansible如何使用jinja2模板 template模块 拷贝文件? te ...

  3. Ansible Jinja2 模板

    1.jinja2渲染NginxProxy配置文件 jinja2 房屋建筑设计固定的? jinja2模板与Ansible关系 Ansible如何使用jinja2模板 template模块 拷贝文件? t ...

  4. Jinja2模板概述

    例子一 循环语句 [root@m01 ~]# cat upstream.conf upstream web { {% for i in range(1,11) %} server 172.16.1.{ ...

  5. Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用

    Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...

  6. Ansible --05 ansible jinja2

    ansible jinja2 什么是jinjia2模板 jinjia2是Python的全功能模块引擎 Jinjia2与Ansible的关系 Ansible通常会使用jinjia2模板来修改被管理主机的 ...

  7. Ansible_使用jinja2模板部署自定义文件

    一.jinja2简介 1.jinja2模板 1️⃣:Ansible将jinja2模板系统用于模板文件,Ansible还使用jinja2语法来引用playbook中的变量 2️⃣:变量和逻辑表达式置于标 ...

  8. Flask 框架下 Jinja2 模板引擎高层 API 类——Environment

    Environment 类版本: 本文所描述的 Environment 类对应于 Jinja2-2.7 版本.   Environment 类功能: Environment 是 Jinja2 中的一个 ...

  9. Python框架学习之Flask中的Jinja2模板

    前面也提到过在Flask中最核心的两个组件是Werkzeug和Jinja2模板.其中Werkzeug在前一节已经详细说明了.现在这一节主要是来谈谈Jinja2模板. 一.为什么需要引入模板: 在进行软 ...

随机推荐

  1. IT兄弟连 HTML5教程 CSS3属性特效 渐变1

    渐变背景一直以来在Web页面中都是一种常见的视觉元素.但一直以来,Web设计师都是通过图形软件设计这些渐变效果,然后以图片形式或者背景图片的形式运用到页面中.Web页面上实现的效果,仅从页面的视觉效果 ...

  2. Jmeter 查看结果树之界面功能介绍 [8]

    查看结果树显示所有请求响应的树,通过它可以查看任何请求的响应.除了显示响应之外,还可以查看获取响应所花费的时间以及一些响应代码.需要通过"查看结果树"来查看服务器处理请求之后的返回 ...

  3. 物联网架构_对AWS的Greengrass的认识与理解

    物联网架构_对AWS的Greengrass的认识与理解 一,前言: 这段时间有许多的收获,分析,还有总结,其中包括新系统的设计与开发,以及其中新技术的踩坑等等等. 但是最近真的很忙,项目的推进,面试工 ...

  4. idea个性化配置

    .katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...

  5. JS---体验DOM操作

    体验DOM操作 1. <!--html代码--> <input type="button" value="弹框" onclick=" ...

  6. OSG绘制空间凹多边形并计算其面积

    目录 1. 思路 1) 多边形分格化 2) 几何图元遍历 2. 实现 3. 参考 1. 思路 这个问题其实涉及到OSG中的两个问题:多边形分格化和几何图元遍历. 1) 多边形分格化 在OpenGL/O ...

  7. SVN 创建发行版/分支版的步骤

    最近看了很多 Git 与 SVN 的比较,很多都说 SVN 做分支很慢,不知道是从何说起.有可能大家都不清楚,SVN 做分支的正确步骤,特此介绍一下. SVN 服务器后台使用 Berkeley DB ...

  8. VMware安装Linux提示此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态

    问题: 原因: 这是由于没有开启虚拟技术导致的. 解决: 进入电脑BIOS设置,将"Inter Virtual Technology"设置为"Enabled", ...

  9. java开发实习生面试经历

     这是我第一次写博客,以前都是查看别人的博客分享学习技术,转眼间我也成为其中一员.从一位初学者到现在的开发实习生,不断前进着,跟随时代的脚步在程序的海洋里漂泊,也意识到自己的各种不足,但我还年轻,头还 ...

  10. linux安装数据时报错Could not execute auto check for display colors using command /usr/bin/xdpyinfo.

    在redhat6.5上安装Oracle时,最后使用oracle用户执行runInstaller 报错如下,无法连接到安装有xmanager的windows服务器,也就无法图形化安装oracle ora ...