微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

<!DOCTYPE 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页面

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐