簡體   English   中英

如何為ansible的mount模塊提供域憑據?

[英]How do you provide domain credentials to ansible's mount module?

我已經想出如何使用shell模塊使用以下命令在網絡上創建一個mount:

- name: mount image folder share
  shell: "mount -t cifs -o domain=MY_DOMAIN,username=USER,password=PASSWORD  //network_path/folder /local_path/folder
  sudo_user: root
  args:
    executable: /bin/bash

但似乎最好使用Ansible的mount模塊來做同樣的事情。

具體來說,我很擔心提供domain=MY_DOMAIN,username=USER,password=PASSWORD 我看到opts有一個標志,但我不太確定它會是什么樣子。

我沒有親自使用mount模塊,但從文檔中看起來你想要做的事情如下:

- name: mount image folder share
  mount: fstype="cifs"
         opts="domain=MY_DOMAIN,username=USER,password=PASSWORD"
         src="//network_path/folder"
         name="/local_path/folder"

我試試看,然后使用-vvvv運行它來查看所有的ansible輸出。 如果它不起作用,那么調試輸出應該給你一個相當不錯的想法如何繼續。

這是我最終得到的命令:

- name: mount product image folder share
  mount: state="present" 
  fstype="cifs" 
  opts="domain= MY_DOMAIN,username=USER,password=PASSWORD,file_mode=0777,dir_mode=0777" src="//network_path/folder" name="/local_path/folder"
  sudo_user: root
  sudo: yes

關於它的幾點說明:

  1. 我不認為file_mode=0777,dir_mode=0777應該是必需的,但在我的情況下需要我才能擁有該文件夾的寫入權限。 我可以在不指定權限的情況下讀取文件夾,但我無法寫入。

  2. 這段代碼是正確的,不是因為我在1.9.0和1.9.1上測試了這個ansible bug ,而且這兩個版本都是一個問題。
    sudo_user: root sudo: yes

擴展@ adam-kalnas答案:

創建fstab條目然后調用mount將允許您以更合適的權限級別掛載文件系統(即不是0777)。 通過執行state: present ansible將僅在/ etc / fstab中創建條目,然后可以由用戶安裝。 從ansible 安裝模塊文檔

absentpresent只處理fstab,但不會影響當前的安裝。

此外,您希望避免在/ etc / fstab文件中保留憑據(因為所有人,人或服務都可以讀取)。 為避免這種情況,請創建適當安全的憑據文件。

一起看起來像這樣:

- name: Create credential file (used for fstab entry)
  copy:
    content: |
      username=USER
      password=PASSWORD
    dest: /home/myusername/.credential
    mode: 0600
  become: true
  become_user: myusername

- name: Create fstab entry for product image folder share
  mount: 
    state: present 
    fstype: cifs 
    opts: "credentials=/home/myusername/.credential,file_mode=0755,dir_mode=0755,user" 
    src="//network_path/folder" 
    path="/local_path/folder"
  become: true

- name: Mount product image folder share
  shell: |
    mount "/local_path/folder"
  become: true
  become_user: myusername

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM