2016-08-03 305 views
1

假設有一個目錄/ dir/tools。 工具包含一堆腳本,比如說a.sh,b.sh,c.sh.Ansible:在.yml文件中更改目錄中文件的權限

我需要設置的a.sh,b.sh和c.sh到0775.

我通過以下方式完成目前它的權限:

- name: Fix 'support_tools' permissions 
    file: path={{ item }} owner=abc group=abc mode=0775 
    with_items: 
    - /dir/tools/a.sh 
    - /dir/tools/b.sh 
    - /dir/tools/c.sh 

順便說一句, 'file:path =/dir/tools owner = abc group = abc mode = 0775'設置工具目錄的權限,但不是其中的文件的權限。

有沒有更好的方法來實現這一目標?

+0

你有沒有嘗試添加'狀態= directory'到第二次嘗試? – ydaetskcoR

回答

5

嘗試:

- name: Fix 'support_tools' permissions 
    file: path=/dir/tools owner=abc group=abc mode=0775 state=directory recurse=yes 
+0

另一個問題:如果除了a.sh,b.sh和c.sh之外還有其他目錄,並且我不希望更改它們的權限,那麼它們如何排除? – Aarvi

+0

@Aarvi不幸的是它是全部或沒有。 –

0

您可以跳過指定組爲好。然後通過使用--check參數運行它來檢查你的yml文件。

0

嘗試:

- name: Fix 'support_tools' permissions 
    shell: 'chmod a+x /dir/tools/*'