用盐状态的符号链接替换文件

时间:2013-12-23 18:42:43

标签: salt-stack

我是盐堆新手。

我正在努力确保存在符号链接。

/etc/localtime:
  file.symlink:
    - target: /usr/share/zoneinfo/Europe/Paris
    - file.exists:
      - name: /usr/share/zoneinfo/Europe/Paris

当没有现有/etc/localtime/etc/localtime已经是符号链接时,结果为例外。但是当/etc/localtime是常规文件时它失败了:

----------
State: - file
Name:      /etc/localtime
Function:  symlink
    Result:    False
    Comment:   File exists where the symlink /etc/localtime should be
    Changes:   

我无法想象如何编码状态,因此在创建链接之前删除文件。任何线索?

干杯, 皮尔

1 个答案:

答案 0 :(得分:13)

使用force=True

/etc/locatime:
  file.symlink:
    - target: /usr/share/zoneinfo/Europe/Paris
    - force: True
    # Note: file.exists is not valid here and can be removed
    # file.exists:
    #  - name: /usr/share/zoneinfo/Europe/Paris

来自the documentation

  

如果符号链接的目标存在且不是符号链接   force设置为False,状态将失败。如果force设置为True,   将删除符号链接文件中的文件或目录   为符号链接腾出空间,除非设置了backupname,否则它将被设置   被重命名