如何为ansible的mount模块提供域凭据?

Ada*_*nas 6 ansible ansible-playbook

我已经想出如何使用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
Run Code Online (Sandbox Code Playgroud)

但似乎最好使用Ansible的mount模块来做同样的事情.

具体来说,我对提供选项感到困惑domain=MY_DOMAIN,username=USER,password=PASSWORD.我看到opts有一个标志,但我不太确定它会是什么样子.

Pot*_*mer 6

在@ adam-kalnas上扩展答案:

创建一个fstab条目然后调用mount将允许您以更适当的权限级别(即不是0777)安装文件系统。通过执行state: presentansible将仅在/ etc / fstab中创建条目,然后可由用户挂载。从ansible 挂载模块文档

absent并且present仅处理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
Run Code Online (Sandbox Code Playgroud)


Bru*_*e P 5

我没有亲自使用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"
Run Code Online (Sandbox Code Playgroud)

我试试看,然后使用-vvvv运行它来查看所有的ansible输出.如果它不起作用,那么调试输出应该给你一个相当不错的想法如何继续.


Ada*_*nas 5

这是我最终要执行的命令:

- 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
Run Code Online (Sandbox Code Playgroud)

一些注意事项:

  1. 我不认为file_mode=0777,dir_mode=0777必须这样做,但是在我的情况下,我才需要对该文件夹具有写权限。我可以在不指定权限的情况下读取该文件夹,但无法写入该文件夹。

  2. 此代码段是必需的,不是因为 我在1.9.0和1.9.1上测试了这个严重的错误,这在两个版本中都是一个问题。
    sudo_user: root sudo: yes