我想要做這樣的事情:檢查文件是否存在,並創建一個符號鏈接
如果文件A存在或不存在的符號連接B,我想創建一個符號乙 - > A.
現在我有:
B:
file:
- symlink:
- target: A
- exists:
- name: A
但是,這是不好的,它不檢查我想要的東西。我怎樣才能在鹽中實現這個簡單的東西?
我想要做這樣的事情:檢查文件是否存在,並創建一個符號鏈接
如果文件A存在或不存在的符號連接B,我想創建一個符號乙 - > A.
現在我有:
B:
file:
- symlink:
- target: A
- exists:
- name: A
但是,這是不好的,它不檢查我想要的東西。我怎樣才能在鹽中實現這個簡單的東西?
你應該使用Dan Garthwaite的優秀答案here作爲如何檢查文件存在的基礎。我修改了他的解決方案來回答你的問題。
{% if 1 == salt['cmd.retcode']('test -f /path/to/A') %}
/path/to/A:
file.symlink:
- target: /symlink/path/A
{% endif %}
注意,有一個機會,你的狀態會不一致。我們不能有來自同一個狀態模塊的多個函數調用。 (例如'文件')。在標識符B下,不能有'file.symlink'和'file.exists',因爲這兩個函數都是同一個狀態模塊的一部分。這是由Salt在內部處理列表的方式引起的,它最終只剩下一個。 – renoirb