2017-03-09 23 views
0

這裏是我創建特定的SE Linux方面的目錄:如何在它

- name: Create directories that will be used as persistent volumes 
    become: yes 
    become_method: sudo 
    file: 
    path: /tmp/pv-{{ item }} 
    state: directory 
    mode: "g=rwx" 
    group: "root" 
    selevel: _default 
    seuser: _default 
    serole: _default 
    setype: svirt_sandbox_file_t 
    with_items: 
    - cassandra 
    - services 

兩個目錄都被正確創建,組權限都OK。但SE Linux環境是錯誤的。

$ ll -dZ /tmp/pv-cassandra 
drwxrwxr-x. 2 jkremser root unconfined_u:object_r:user_tmp_t:s0 40 Mar 9 15:19 /tmp/pv-cassandra 

這是調試輸出的一部分:

ok: [localhost] => (item=cassandra) => { 
    "changed": false, 
    "diff": { 
     "after": { 
      "path": "/tmp/pv-cassandra" 
     }, 
     "before": { 
      "path": "/tmp/pv-cassandra" 
     } 
    }, 
    "gid": 0, 
    "group": "root", 
    "invocation": { 
     "module_args": { 
      "backup": null, 
      "content": null, 
      "delimiter": null, 
      "diff_peek": null, 
      "directory_mode": null, 
      "follow": false, 
      "force": false, 
      "group": "root", 
      "mode": "g=rwx", 
      "original_basename": null, 
      "owner": null, 
      "path": "/tmp/pv-cassandra", 
      "recurse": false, 
      "regexp": null, 
      "remote_src": null, 
      "selevel": "_default", 
      "serole": "_default", 
      "setype": "svirt_sandbox_file_t", 
      "seuser": "_default", 
      "src": null, 
      "state": "directory", 
      "unsafe_writes": null, 
      "validate": null 
     }, 
     "module_name": "file" 
    }, 
    "item": "cassandra", 
    "mode": "0775", 
    "owner": "root", 
    "path": "/tmp/pv-cassandra", 
    "size": 80, 
    "state": "directory", 
    "uid": 0 
} 

我在做什麼錯?我的操作系統是Fedora的25

+0

當您執行在其中包含的是狀態的目錄這個任務,你得到'每次ok'它看起來那麼從成績單,只是想確認。 – techraf

+0

是的,如果目錄不存在,我會得到「更改」,或者反覆運行時會得到「確定」 –

回答

0

如果我使用copy模塊,而不是file,具有幾乎相同的參數,它拋出這個錯誤:

Aborting, target uses selinux but python bindings (libselinux-python) aren't installed 

安裝libselinux-python包後,它的工作原理!所以它看起來像file模塊默默吞下錯誤和做的事情可以做:(我不能依賴於用戶具有libselinux-python包安裝的事實。

我可能會叫chcon自己作爲一個殼命令或添加的軟件包作爲先決條件:?

- name: Install the libselinux-python package 
    package: 
    name: libselinux-python 
    state: present