2013-12-23 78 views
6

我是新來的鹽堆。用鹽狀態中的符號鏈接替換文件

我試圖確保一個符號鏈接存在。

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

結果爲例外時,有沒有現成的/etc/localtime,或者當/etc/localtime已經是一個符號鏈接。

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

我找不出這樣的文件的鏈接創建之前刪除了怎麼編寫狀態:但是,當/etc/localtime是一個普通的文件,它失敗。任何線索?

乾杯, 皮埃爾

回答

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

如果存在,不是一個符號鏈接符號鏈接的目標和 力設置爲False,國家將失敗。如果力設置爲True, 的文件或目錄的符號鏈接文件的方式將被刪除 騰出空間的符號鏈接,除非backupname設置,到時將 改名

+1

哦~~ ...它工作得很好。非常感謝 ! – Pierre

+0

我不認爲「file.exists」在這個例子中正在做任何事情。它只是被忽略,因爲它不是「file.symlink」 –

+0

Hrm的有效選項。 @Pierre我刪除了最後兩行,你能確認它仍然有效嗎? –

相關問題