Salt Jinja模板循环拼接字符串问题求助
Salt Jinja模板循环拼接字符串问题求助
各位好,我在使用Salt的Jinja模板拼接字符串时碰到了麻烦,想请大家帮忙看看。
我的需求是这样的:我需要获取Salt grain里名为accesslist的数组(里面存的是一组组名),把这些组名拼接到一个LDAP过滤规则的字符串里,最终生成多个memberOf条件组合的过滤语句。
我写的模板代码是这样的:
{% set access_filter = '(memberOf=CN=bbb,OU=Security,OU=Groups,OU=yyy,DC=xxx,DC=local)' %} {% for acc in grains.accesslist %} {% set access_filter = '(memberOf=CN={{ acc }},OU=Security,OU=Groups,OU=aa,DC=bb,DC=local)' ~ access_filter %} {{ acc }}_call_off: cmd.run: - name: echo {{ acc }} {% endfor %}
我一开始怀疑是grains读取或者循环迭代的问题,但后来验证发现这些部分都正常——循环里生成的每个{{ acc }}_call_off任务都成功执行了,执行日志如下:
ID: test_call_off
Function: cmd.run
Name: echo test
Result: True
Comment: Command "echo test" run
Started: 10:59:32.641942
Duration: 7.182 ms
Changes:pid:
375233
retcode:
0
stderr:stdout:
testID: test2_call_off
Function: cmd.run
Name: echo test2
Result: True
Comment: Command "echo test2" run
Started: 10:59:32.649277
Duration: 3.948 ms
Changes:pid:
375234
retcode:
0
stderr:stdout:
test2ID: create_access_list
Function: file.append
Name: /etc/sssd/conf.d/ccom_sssd_configs.conf
Result: True
Comment: File /etc/sssd/conf.d/ccom_sssd_configs.conf is in correct state
Started: 10:59:32.655181
Duration: 14.477 ms
Changes:
但问题在于,我拼接出来的access_filter字符串并没有达到预期的效果,想请教下大家,我的拼接逻辑哪里出问题了?有没有正确的方式来实现这种循环拼接字符串的需求?
备注:内容来源于stack exchange,提问作者Computer guy next door
相关产品推荐
相关产品推荐

