Linux saltstack:仅当不存在时创建目录

Linux saltstack:仅当不存在时创建目录,linux,salt-stack,Linux,Salt Stack,目前,我有以下创建目录的规则 /init/dir: file.recurse: - source: salt://init_dir/init - user: name - group: group - name: /path/init - dir_mode: 2775 - file_mode: 777 现在我只想在新仆从不存在的情况下创建一个目录 结果证明非常简单,在盐堆文档中有很好的记录 下面是我想到的 {% if not salt

目前,我有以下创建目录的规则

/init/dir:
  file.recurse:
    - source:  salt://init_dir/init
    - user:  name
    - group:  group
    - name:  /path/init
    - dir_mode: 2775
    - file_mode: 777

现在我只想在新仆从不存在的情况下创建一个目录

结果证明非常简单,在盐堆文档中有很好的记录 下面是我想到的

{% if not salt['file.directory_exists' ]('/home/init_dir') %}
/home/init_dir:
  file.directory:
    - user:  user
    - name:  /home/init_dir
    - group:  group
    - mode:  755
{% else %}
  cmd.run:
    - name: echo "Directory exists"
{% endif %}

虽然您的示例确实有效,但它不是必需的<代码>文件。目录仅在目录不存在时才会尝试创建该目录。

我不明白你的意思,只有在尚未应用的情况下才始终应用salt状态。无论如何,创建一个目录的行为都是这样的(不管是什么salt)。在某些情况下,当目录存在时,file.directory将失败。例如,如果目录是FUSE文件系统的装入点,则装入文件系统时,装入点将显示为文件,从而导致file.directory状态失败。如果您的目的是在目录不存在时创建目录,则简单的“file.directory”即可。如果根目录不存在,则使用
makedirs=True
。我用它来设置SLS中的模式/perms(如果存在的话)(使用
recurse
选项)