Ansible(模块文件系统):找不到设备项

时间:2017-03-13 16:01:15

标签: hadoop filesystems ansible

当尝试使用Ansible模块" filesystem"创建文件系统列表时,我点击以下错误消息:

  

失败:[主持人](item = / dev / sdb)=> {"失败":true," item":" / dev / sdb"," msg":"未找到设备项"}

我已经确认目标"主机"上存在/dev/sdb,因此我不理解Ansible错误消息:

[~]# ls -l /dev/sdb
brw-rw---- 1 root disk 8, 16 Mar  1 09:06 /dev/sdb

以下是我的任务定义:

- name: Create /grid* filesystems using "hadoop" options defined in /etc/mke2fs.conf
  filesystem:
    fstype: ext4
    dev: item
    opts: -T hadoop
  with_items: "{{ grid_block_devices }}"
[~]# cat roles/mke2fs/vars/main.yml 
---
grid_block_devices: [ '/dev/sdb','/dev/sdc','/dev/sdd','/dev/sde','/dev/sdf','/dev/sdg','/dev/sdh','/dev/sdi','/dev/sdj','/dev/sdk','/dev/sdl','/dev/sdm','/dev/sdn','/dev/sdo','/dev/sdp' ]

有人知道问题在哪里吗?

1 个答案:

答案 0 :(得分:1)

您需要使用Jinja2表达式来引用变量值,否则您将为item参数指定字符串dev。错误消息是:

  

找不到设备

找不到名为item的设备。

以这种方式修复:

- name: Create /grid* filesystems using "hadoop" options defined in /etc/mke2fs.conf
  filesystem:
    fstype: ext4
    dev: "{{ item }}"
    opts: -T hadoop
  with_items: "{{ grid_block_devices }}"