Ansible中的jinjia2模板

2021-10-04 22:53:32 字數 1588 閱讀 9787

jinjia模板是在ansible中建立的一類模板檔案,通常以.j2結尾標識。模板的內容含有多個變數,使原本固定的某個檔案配置,通過引數的改變,變得可以復用,提高了使用效率。

模板的組成:

模板一般由多個元素組成,包含:資料、變數、表示式

變數:通常在play中的vars中進行標識,

表示式為: {%    %} 表示式或者邏輯;{{}}最終向使用者輸出表示式的結果; {#  #}注釋。

模板的示例:

##更改apacha配置檔案為模板

##更改埠

port 22 ====> port }

##更改root登入許可權

permitrootlogin yes ====> permitrootlogin } ##變數可在play中設定和使用

3.1 部署jinjia模板

##模板使用

tasks

- name: template

template:

src: /mnt/jinji-template.j2

dest: /mnt/dest-config-file.txt

3.2 迴圈控制

##迴圈控制

## 1

##user為變數,迴圈users內的所有內容

}## 2

##myhost為變數,迴圈groups.myhosts內的所有內容

}## 3 條件語句

##條件為真,才執行result

}

jinjia中的迴圈控制只能在模板中使用,不能再playbook中使用;

3.1 變數過濾器

##變數過濾

} ##以json格式輸出}

} ##對json格式的字串進行解析

}

4.1 建立模板

##建立模板

1 this is the system }

2 this is a } version

3 } system.

4 system owner is }.

4.2 模板呼叫

##呼叫模板

1 ---

2 - name: jinjia2

3 hosts: all

4 vars:

5 - system_owner: [email protected] ##變數註冊

6 tasks:

7 - name: template

8 template:

9 src: example.j2 ##模板呼叫

10 dest: /mnt

11 owner: root

12 group: root

13 mode: 0644

4.3 結果顯示

在受控主機檢視是否產生檔案

Flask中的Jinjia2的使用(二)

主要包含兩個 if else if else endif for endforif語句 jinja2 語法中的if語句跟 python 中的 if 語句相似,後面的布林值或返回布林值的表示式將決定 中的哪個流程會被執行 logout logout a login login a 過濾器可以被用在 i...

ansible中的變數

ansible中變數的優先順序 命令列中的變數 yml檔案中的變數 roles目錄下vars目錄中的變數 roles目錄下default目錄中的變數 變數寫法 1.命令列變數 ansible playbook i hosts host playbooks echo.yml e key ooo val...

Centos中的ansible安裝

ansible簡單的說是乙個配置管理系統,只需要在管理伺服器上面安裝,就可以通過ssh遠端管理你的其它裝置了。客戶端機器上面需要有python2.5及以上環境,且不支援windows。ansible的使用場景非常廣泛,比如我們需要將乙份檔案拷貝到100臺伺服器,我們只需要呼叫ansible的copy...