当尝试使用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' ]
有人知道问题在哪里吗?
答案 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 }}"