如何使用盐来测试神社的功能?
How to use salt to test out jinja functionality?
我正在寻找一种方法来测试 salt 是否会按照我期望的方式呈现 jinja 模板。
如果我有一个文件 template.sls
包含:
{% for usr in ['moe','larry','curly'] %}
{{ usr }}:
user.present
{% endfor %}
我可以 运行 一个 salt 命令来显示呈现的模板吗?
注意:我知道 Jinja 正在执行渲染,我可以在 python 中对其进行模板化。但我想确保我使用的是 salt 使用的 Jinja 版本。 AFAIK 盐嵌入了神社引擎。
我正在寻找的一个例子是一个 salt 命令,它的功能类似于以下 ansible 命令:
以下摘自已接受的答案: How can I test jinja2 templates in ansible?
3_Ansible(使用 --check)
创建测试剧本jinja2test.yml:
---
- hosts: 127.0.0.1
tasks:
- name: Test jinja2template
template: src=test.j2 dest=test.conf
和运行它:
ansible-playbook jinja2test.yml --check --diff --connection=local
示例输出:
PLAY [127.0.0.1] **************************************************************
GATHERING FACTS ***************************************************************
ok: [127.0.0.1]
TASK: [Test jinja2template] ***************************************************
--- before: test.conf
+++ after: /Users/user/ansible/test.j2
@@ -0,0 +1,4 @@
+Mike
+Smith
+Klara
+Alex
changed: [127.0.0.1]
PLAY RECAP ********************************************************************
127.0.0.1 : ok=2 changed=1 unreachable=0 failed=0
为了显示生成的 SLS,您可以使用 slsutil.renderer
这很简单,应该可以解决问题。
在我的例子中,我是这样使用它的:
salt 'test01' slsutil.renderer salt://blabla/test.sls 'jinja|yaml'
最好和最简单的方法是使用 state.show_sls 如前所述
请查看官方文档here
对于您的具体情况,可能是这样的:
salt "your_minion" state.show_sls template.sls
我正在寻找一种方法来测试 salt 是否会按照我期望的方式呈现 jinja 模板。
如果我有一个文件 template.sls
包含:
{% for usr in ['moe','larry','curly'] %}
{{ usr }}:
user.present
{% endfor %}
我可以 运行 一个 salt 命令来显示呈现的模板吗?
注意:我知道 Jinja 正在执行渲染,我可以在 python 中对其进行模板化。但我想确保我使用的是 salt 使用的 Jinja 版本。 AFAIK 盐嵌入了神社引擎。
我正在寻找的一个例子是一个 salt 命令,它的功能类似于以下 ansible 命令:
以下摘自已接受的答案: How can I test jinja2 templates in ansible?
3_Ansible(使用 --check)
创建测试剧本jinja2test.yml:
---
- hosts: 127.0.0.1
tasks:
- name: Test jinja2template
template: src=test.j2 dest=test.conf
和运行它:
ansible-playbook jinja2test.yml --check --diff --connection=local
示例输出:
PLAY [127.0.0.1] **************************************************************
GATHERING FACTS ***************************************************************
ok: [127.0.0.1]
TASK: [Test jinja2template] ***************************************************
--- before: test.conf
+++ after: /Users/user/ansible/test.j2
@@ -0,0 +1,4 @@
+Mike
+Smith
+Klara
+Alex
changed: [127.0.0.1]
PLAY RECAP ********************************************************************
127.0.0.1 : ok=2 changed=1 unreachable=0 failed=0
为了显示生成的 SLS,您可以使用 slsutil.renderer
这很简单,应该可以解决问题。 在我的例子中,我是这样使用它的:
salt 'test01' slsutil.renderer salt://blabla/test.sls 'jinja|yaml'
最好和最简单的方法是使用 state.show_sls 如前所述
请查看官方文档here
对于您的具体情况,可能是这样的:
salt "your_minion" state.show_sls template.sls