ansible挂载模块找不到特殊设备

时间:2019-08-06 14:24:16

标签: ansible ubuntu-18.04 mount

我正试图将位于/dev/vdb/下的已连接格式化的硬盘驱动器安装到/data。这是剧本部分:

---
- name: setup dada2 
  hosts: tnt
  remote_user: ubuntu
  become: yes
  become_method: sudo

  tasks: 
    - name: Create the file system
      filesystem:
        fstype: ext4
        dev: /dev/vdb

    - name: Mount the created filesystem
      mount:
        path: /data
        src: /dev/vdb/
        fstype:  ext4
        state: mounted

    - name: Make /data available for everyone
      file:
        path: /data
        state: directory
        mode: 0775

但是,我收到错误消息:

TASK [Mount the created filesystem] ********************************************
fatal: [x.x.x.x]: FAILED! => {"changed": false, "msg": "Error mounting /data: mount: /data: special device /dev/vdb/ does not exist (a path prefix is not a directory).\n"}

但是/dev/vdb确实存在,并且运行sudo mount /dev/vdb /data可以正常工作。任何想法可能是什么原因?我没有使用/etc/fstab的经验,但是这个名字经常出现,所以我仔细研究了一下。它说:

LABEL=cloudimg-rootfs   /        ext4   defaults        0 0
LABEL=UEFI      /boot/efi       vfat    defaults        0 0
/dev/vdb/ /data ext4 defaults 0 0

对此有什么想法吗?

编辑:

此处描述了类似的错误:Error in Mount Module in Ansible,但是我按照建议的方式设置了fstype,但我不知道我必须向fstab中添加什么条目以及如何添加?

1 个答案:

答案 0 :(得分:1)

问题是/dev/vdb/中的斜杠

- name: Mount the created filesystem
  mount:
    path: /data
    src: /dev/vdb/
    fstype:  ext4
    state: mounted

正确

- name: Mount the created filesystem
  mount:
    path: /data
    src: /dev/vdb
    fstype:  ext4
    state: mounted

手动从/ etc / fstab中删除该行

/dev/vdb/ /data ext4 defaults 0 0