ansible jinja2模板概述

来源:https://www.cnblogs.com/1naonao/archive/2019/09/23/11575271.html
-Advertisement-
Play Games

[toc] ansible jinja2模板概述 ansible允許jinja2模板中使用條件判斷和迴圈,但是不允許在playbook中使用 ansible jinja2模板使用 基本語法 jinja2模板邏輯判斷 jinja2示例 編輯playbook 準備motd.j2 執行playbook a ...


目錄

ansible jinja2模板概述

ansible允許jinja2模板中使用條件判斷和迴圈,但是不允許在playbook中使用

ansible jinja2模板使用

基本語法

{{ EXPR }}輸出變數值,會輸出自定義的變數值或facts
1)playbook文件使用template模塊
2)模板文件裡面變數使用{{名稱}},比如{{PORT}}或使用facts

jinja2模板邏輯判斷

#迴圈表達式
{% for i in EXPR %}
{% endfor %}

#條件判斷
{% if EXPR %}
{% elif EXPR %}
{% else %}
{% ednif %}

#註釋
{# COMMENT #}

jinja2示例

  • 編輯playbook
[root@m01 ~]# vim jinja2.yml
- hosts: web_group
  tasks:
    - name: Copy Template File
      template:
        src: ./motd.j2
        dest: /etc/motd
  • 準備motd.j2
[root@m01 ~]# vim motd.j2
Welcome to {{ ansible_fqdn }}
This system total mem is : {{ ansible_memtotal_mb }} MB
This system free mem is: {{ ansible_memfree_mb }} MB
  • 執行playbook

ansible jinja2管理nginx

使用playbook推送文件

1.編輯playbook

[root@m01 ~]# vim lb.yml
- hosts: lb_group
  vars:
    http_port: 80
    server_name: www.drz.com
  tasks:
    - name: copy
      template:
        src: ./www.drz.com.conf.j2
        dest: /etc/nginx/conf.d/www.drz.com.conf
      notify: reload nginx
  handlers:
    - name: reload nginx
      systemd:
        name: nginx
        state: reloaded

2.準備配置文件

[root@m01 ~]# vim lb.yml
- hosts: lb_group
  vars:
    http_port: 80
    server_name: www.drz.com
  tasks:
    - name: copy
      template:
        src: ./www.drz.com.conf.j2
        dest: /etc/nginx/conf.d/www.drz.com.conf
      notify: reload nginx
  handlers:
    - name: reload nginx
      systemd:
        name: nginx
        state: reloaded

ansible jinja2管理keepalived

keepalived原配

#keepalived master 配置文件
global_defs {
    router_id lb01
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 50
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {         
        10.0.0.3
    }
}


#keepalived backup配置文件
global_defs {
    router_id lb02
}

vrrp_instance VI_1 {
    state BACKUP        
    interface eth0
    virtual_router_id 50
    priority 100
    advert_int 1
    authentication {    
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.3
    }
}

推送keepalived配置文件

[root@m01 ~]# vim keepalived.yml
- hosts: lb_group
  tasks:
    - name: copy file
      template:
        src: ./keepalived.j2
        dest: /etc/keepalived/keepalived.conf
      notify: restart keepalived

  handlers:
    - name: restart keepalived
      systemd:
        name: keepalived
        state: restarted

準備keepalived配置文件

[root@m01 ~]# vim keepalived.j2
global_defs {
    router_id {{ ansible_fqdn }}
}

vrrp_instance VI_1 {
{% if ansible_fqdn == "lb01" %}
    state MASTER
    priority 150
{% else %}
    state BACKUP
    priority 100
{% endif %}

    interface eth0
    virtual_router_id 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {         
        10.0.0.3
    }
}

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近有個需求就是網頁表格裡面的數據導出到excel 於是從各位前輩的博客園搜了搜demo 大部分非為兩類 都是用的插件NPOI和Eppluse ,因此在這裡就介紹Eppluse 用法,還有就是在博客的時候 好多有留言說想看從資料庫裡面的數據進行導入 而不是寫死的,所以我就以我的案例給大家分享下用法( ...
  • 簡單創建.NET Core WebApi:https://www.cnblogs.com/yanbigfeg/p/9197375.html 登陸驗證四種方式:https://www.cnblogs.com/zuowj/p/5123943.html 解決跨域的8種方法:https://blog.csd ...
  • 非標設備多相機流水線模式緩存圖片(C/S客戶端,c 開發語言) ​ 本文所說流水線方式下存儲圖像是在軟體測量周期慢於圖片周期前提下講解的,如果軟體一直在等待圖片數據,邏輯就沒有那麼複雜。 1、非標設備項目,常規模式測量流程 常規模式下,相機採集圖像信號由上位機控制(無論軟觸發、硬觸發)。每個周期內的 ...
  • 參考文檔:Dapper one to many Table C Code pulic List GetPersons(){ var sql = @"SELECT 1 AS Id, 'Daniel Dennett' AS Name, 1942 AS Born, 1 AS CountryId, 'Uni ...
  • 你一定看過這篇文章 《進擊的 Java ,雲原生時代的蛻變》, 本篇文章的靈感來自於這篇文章。北京時間9.24 就將正式發佈.NET Core 3.0, 所以寫下這篇文章讓大家全面認識.NET Core。.NET 生態系統是一個不斷變化的生態圈,我相信它正在朝著一個偉大的方向發展。正好 最近 Inf... ...
  • 一、前言 在.Net Framework框架有專門獲取webconfig配置的方法供我們使用,但是在.Net Core或者.Net Standard中沒有可以直接使用的方法來獲取配置文件信息,下麵就來實現獲取配置信息。 二、獲取配置信息的實現 在.Net Core中,他的配置信息的載體是一個json ...
  • 首先給大家介紹一下序列化是用來乾什麼的,他為什麼出現 序列化這種技術說到底其實就是把臨時數據保存在電腦上。大家都知道對於程式而言對象是一種稍縱即逝的數據,不僅僅是程式重啟、電腦重啟,就連內部函數的變化也有可能導致對象的消失,但是總有一些對象是大家不想讓其隨意消失的並且想在下一次開啟程式的時候進行載入 ...
  • memblock演算法是linux內核初始化階段的一個記憶體分配器(它取代了原來的bootmem演算法),實現較為簡單。負責page allocator初始化之前的記憶體管理和分配請求。 分析memblock演算法,可以從幾點入手: 1. memblock演算法初始化; 2. memblock演算法管理記憶體的申請 ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...