【问题标题】:salt file.directoy_exists check in a loopsalt file.directoy_exists 循环检查
【发布时间】:2017-05-02 17:52:11
【问题描述】:

尝试遍历文件夹列表以检查目录是否存在,然后清理该目录(删除所有文件)。

{% set FOLDERS_TO_CLEAN = ['C:\Test\Folder1'] %}
{% for FOLDER in FOLDERS_TO_CLEAN %}
{% if salt['file.directory_exists']({{ FOLDER }}) %}
{{ FOLDER }}_delete:
file.directory:
  - name: {{ FOLDER }}
  - clean: True
  - failhard: True
{% endif %}
{% endfor %}

有问题的行是第三行。使用最终导致语法错误的变量 FOLDER 但是当我将其更改为我的测试字符串时它可以工作。知道我可以更改什么以使其正常工作吗?

【问题讨论】:

    标签: salt salt-stack


    【解决方案1】:

    您需要在 if 语句中的 {{ FOLDER }} 周围加上单引号。 像这样:

    {% set FOLDERS_TO_CLEAN = ['C:\Test\Folder1'] %}
    {% for FOLDER in FOLDERS_TO_CLEAN %}
    {% if salt['file.directory_exists']('{{ FOLDER }}') %}
    {{ FOLDER }}_delete:
    file.directory:
      - name: {{ FOLDER }}
      - clean: True
      - failhard: True
    {% endif %}
    {% endfor %}
    

    【讨论】:

    • 有效!感谢您的快速帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    相关资源
    最近更新 更多