Ansible(模块文件系统):找不到设备项
Ansible (module filesystem): Device item not found
尝试使用 Ansible 模块 "filesystem" 创建文件系统列表时,我遇到了以下错误消息:
failed: [host] (item=/dev/sdb) => {"failed": true, "item": "/dev/sdb", "msg": "Device item not found."}
我已验证 /dev/sdb
存在于目标 "host" 上,所以我不明白 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' ]
有人知道问题出在哪里吗?
您需要使用 Jinja2 表达式来引用变量值,否则您将字符串 item
分配给 dev
参数。错误信息是:
Device item not found.
找不到名为 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 }}"
尝试使用 Ansible 模块 "filesystem" 创建文件系统列表时,我遇到了以下错误消息:
failed: [host] (item=/dev/sdb) => {"failed": true, "item": "/dev/sdb", "msg": "Device item not found."}
我已验证 /dev/sdb
存在于目标 "host" 上,所以我不明白 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' ]
有人知道问题出在哪里吗?
您需要使用 Jinja2 表达式来引用变量值,否则您将字符串 item
分配给 dev
参数。错误信息是:
Device item not found.
找不到名为 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 }}"