linux使用jinja2模板_SaltStack配置管理工具jinja2模板的使用
SaltStack是使用的YAML語言來將sls文件解釋成它自己可以識別的內容,Jinja是一種基于PYTHON的模板引擎,在SLS文件里可以直接使用jinja模板來做一些操作,比如當我們需要對多臺服務器做一些apache服務配置時,由于每臺服務器信息不一樣(比如ip不同),如果為每臺服務器去創建SLS文件就不太合理,而通過jinja模板則可以用生成變量→讀取變量的方式來為每個服務器設置應有的信息。下面來看看定義jinja模板的方法:
jinja2模板的基本使用
1、首先將source文件中需要引用變量的內容改為{{ 變量名 }},如修改apache配置文件中的端口信息
Listen {{ PORT }}2、對SLS文件進行編輯以定義模板并且給變量傳值,在第一步中定義了幾個變量就必須給幾個變量傳值
apache-service:
pkg.installed:
- name: httpd
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://files/httpd.conf
- user: root
- group: root
- mode: 644
- template: jinja #增加這行表示開啟模板
- defaults: #下面設定變量的值
PORT: 8080 #之前定義的PORT變量值為8080
- require:
- pkg: apache-service
service.running:
- name: httpd
- enable: True
- reload: True
- watch:
-file: apache-service3、執行salt '*' state.highstate,然后查看配置文件發生的變化,可以看到PORT這個變量的值變成了8080
jinja2模板的高級使用:
在基本使用中由于修改的是端口,端口信息一般是固定的,如果想要修改的信息是每個minion自身的IP就沒辦法設置一個通用的信息了,這個時候需要通過其他方法來獲取minion相關信息,這里可以使用Grains、Pillar和執行模塊三個方法來獲取,下面用Grains舉例設置IP的辦法
apache-service:
pkg.installed:
- name: httpd
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://files/httpd.conf
- user: root
- group: root
- mode: 644
- template: jinja #增加這行表示開啟模板
- defaults: #下面設定變量的值
HOST: {{ grains['fqdn_ip4'][0] }} #[fqdn_ip4]代表的是IP,該信息需要先執行salt '*' grains.items查詢,由于grains查詢輸出的是列表,會有多個值,需要加上[0]代表取第一個值
PORT: 8080 #之前定義的PORT變量值為8080
- require:
- pkg: apache-service
service.running:
- name: httpd
- enable: True
- reload: True
- watch:
-file: apache-service
總結
以上是生活随笔為你收集整理的linux使用jinja2模板_SaltStack配置管理工具jinja2模板的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python定时播放音乐程序_pytho
- 下一篇: 缩进一个字符_Indesign里标点挤压