Salt Stack - Jinja模版

Jinja模版

Jinja可以基于Grains和pillar动态生成配置文件。

Jinja简单示例

比如,在/srv/salt中定义test_jinja.sls:

{% set var= 'test jinja' %}   #变量
test_var:
  cmd.run:
    - name: echo "my var is {{ var }}"

运行如下命令查看:

salt '*' state.sls test_jinja

输出结果为:

    State: - cmd
    Name:      echo "my var is test jinja"
    Function:  run
        Result:    True
        Comment:   Command "echo "my var is test jinja"" run
        Changes:   pid: 12579
                   retcode: 0
                   stderr:
                   stdout: my var is test jinja

使用Jinja生成nginx页面

定义index.html 模版

定义模板templates/index.html


<html>
<body>
<span>{{pillar['content']}}span>
body>
html>

在模板中使用pillar中定义的变量。

修改 /srv/salt/nginx.sls

nginx:
 pkg.installed:
  - name: nginx
 service.running:
  - enable: True
  - reload: True
  - watch:
    - file: index.html

index.html:
  file.managed:
    - name: /usr/share/nginx/html/index.html
    - source: salt://template/index.html
    - user: root
    - group: root
    - mode: 755
    - template: jinja
    - require:
      - pkg: nginx

其中:

  • name:指定minion中的文件地址
  • source:指定在base目录中的地址
  • template:表明文件是jinja模板
  • require:指定file模块依赖于nginx模块

运行salt ‘*’ state.highstate命令并查看nginx页面。

你可能感兴趣的:(Salt,Stack)