2013-12-23 8 views
6

私はソルトスタックが初めてです。ファイルをシンボリックリンクのシンボリックリンクに置き換えてください

シンボリックリンクが存在することを確認しようとしています。そこには、既存の/etc/localtimeません場合、または除外として

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

結果が/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に設定されている場合、それは

+1

あー名前が変更される時backupnameが、設定されていない限り、シンボリックリンクファイルの形で ファイルまたはディレクトリが、シンボリックリンクのための部屋を作るために を削除されます...それはうまく動作します。どうもありがとう ! – Pierre

+0

この例では、 "file.exists"は何もしていないと思います。それは "file.symlink"の有効なオプションではないので無視されています –

+0

Hrm。 @ピエール私は最後の2行を削除しました、それはまだ動作することを確認できますか? –

関連する問題