【问题标题】:Correct syntax for if statement in saltstacksaltstack中if语句的正确语法
【发布时间】:2019-07-17 21:16:28
【问题描述】:

运行以下命令: salt host1 file.check_perms /xxx/zzz '{}' root sudo 0750 我会得到真实的, 我喜欢将此添加到我的状态中,但找不到正确的语法。

{% if not salt['file.check_perms']('/xxx/zzz/', '{}',['root'],['sudo'],['0750']) %
Set group ownership and permissions:
  file.directory:
    - name: /xxx/zzz/
    - user: root
    - group: sudo
    - dir_mode: 750
    - file_mode: 750
    - recurse:
      - user
      - group
      - mode
{% endif %}

追溯:

 Data failed to compile:
----------
    Rendering SLS 'base:certbot.cert' failed: Jinja error: string indices must be integers, not unicode
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/salt/utils/templates.py", line 392, in render_jinja_tmpl
    output = template.render(**decoded_context)
  File "/usr/lib/python2.7/dist-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/usr/lib/python2.7/dist-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "<template>", line 13, in top-level template code
  File "/usr/lib/python2.7/dist-packages/salt/modules/file.py", line 4469, in check_perms
    orig_comment = ret['comment']
TypeError: string indices must be integers, not unicode

谁能帮帮我?

【问题讨论】:

    标签: salt-stack


    【解决方案1】:

    我自己找到了解决方案,以下语法有效:

    {% if salt['file.check_perms']('/xxx/zzz/', {},('root'),('sudo'),('0750')) != 'True' %} 
    Set group ownership and permissions:
      file.directory:
        - name: /zzz/zzz/
        - user: root
        - group: sudo
        - dir_mode: 750
        - file_mode: 750
        - recurse:
          - user
          - group
          - mode
    {% endif %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多