检查salt文件系统salt中是否存在文件://

时间:2018-04-20 09:52:23

标签: salt-stack

我想检查salt文件系统(salt://)中是否存在文件,并根据该文件添加指令。 我确切地说,我使用gitfs作为salt文件系统中的挂载点,并且不使用/ srv目录。

更具体地说,我想做类似的事情:

{% if salt['file.directory_exists']('salt://a_directory') %}
 file.recurse:
    - name: dest
    - source: salt://a_directory
    - template: jinja
{% endif %}

但似乎没有用。

2 个答案:

答案 0 :(得分:0)

如果事先知道位置file_roots,例如:

file_roots:
  base:
    - /salt/states

salt://a_directory将映射到/salt/states/a_directory

因此你可以使用:

{% if not salt['file.directory_exists' ]('/salt/states/a_directory') %}
...

答案 1 :(得分:0)

我想加载包含安装了pkg.kg的软件包列表的yaml文件,但前提是yaml在主目录上(文件名由变量构造)。

我正在使用salt.modules.cp.list_master

# Search path on the master:
{% set found = salt.cp.list_master(prefix='my/path/example.yaml') | count %}
{% if found %}

{# Do something… #}

{% endif %}

如果要检查目录,可以使用以下方法:

{% set found = salt.cp.list_master_dirs(prefix='my/path') | count %}