如何解决无法理解来自 ansible parted 模块的错误
我正在尝试在设备上创建一个分区,检查创建的内容并将该信息用于进一步的步骤,例如在分区上设置文件系统。但我收到以下错误,我不明白我错过了什么。
以下是相关任务
- name: Fetch partitions info "{{ item.0.device }}"
parted: device={{ item.0.device }} unit=MiB
register: nvme2n1_info
loop: "{{ local_volume_mount_disks|subelements('partitions') }}"
- debug:
var: nvme2n1_info.partitions
- name: Create partitions "{{ item.0.device }}"
parted:
device: "{{ item.0.device }}"
number: "{{ item.1.number }}"
state: present
label: gpt
part_start: "{{ item.1.start }}"
part_end: "{{ item.1.end }}"
loop: "{{ local_volume_mount_disks|subelements('partitions') }}"
- parted: device= "{{ item.0.device }}" unit=GiB
register: nvme2n1_info
loop: "{{ local_volume_mount_disks|subelements('partitions') }}"
- debug:
var: nvme2n1_info.partitions
以上任务使用了以下变量
# Create partition and mount filesystems for service storage
local_volume_mount_enabled: true
local_volume_mount_root_directory: /local-volumes
local_volume_mount_disks:
- device: /dev/nvme2n1
partitions:
- number: 1
start: 1GiB
end: 800GiB
storage_class: ssd-wkr-node-services
输出:
TASK [local_volume_mount : Fetch partitions info "{{ item.0.device }}"] ********
Friday 19 March 2021 18:45:41 +0000 (0:00:00.025) 0:00:22.876 **********
ok: [node1] => (item=[{'device': '/dev/nvme2n1','partitions': [{'number': 1,'start': '1GiB','end': '800GiB','storage_class': 'ssd-wkr-node-services'}]},{'number': 1,'storage_class': 'ssd-wkr-node-services'}])
TASK [local_volume_mount : debug] **********************************************
Friday 19 March 2021 18:45:41 +0000 (0:00:00.268) 0:00:23.144 **********
ok: [node1] => {
"nvme2n1_info.partitions": "VARIABLE IS NOT DEFINED!"
}
TASK [local_volume_mount : Create partitions "{{ item.0.device }}"] ************
Friday 19 March 2021 18:45:41 +0000 (0:00:00.027) 0:00:23.171 **********
ok: [node1] => (item=[{'device': '/dev/nvme2n1','storage_class': 'ssd-wkr-node-services'}])
TASK [local_volume_mount : parted] *********************************************
Friday 19 March 2021 18:45:41 +0000 (0:00:00.242) 0:00:23.414 **********
failed: [node1] (item=[{'device': '/dev/nvme2n1','storage_class': 'ssd-wkr-node-services'}]) => {"ansible_loop_var": "item","changed": false,"err": "Error: Could not stat device unit - No such file or directory.\n","item": [{"device": "/dev/nvme2n1","partitions": [{"end": "800GiB","number": 1,"start": "1GiB","storage_class": "ssd-wkr-node-services"}]},{"end": "800GiB","storage_class": "ssd-wkr-node-services"}],"msg": "Error while getting device information with parted script: '/sbin/parted -s -m -- unit 'GiB' print'","out": "","rc": 1}
解决方法
您正在循环,因此它不是 nvme2n1_info['partitions']
而是 nvme2n1_info.results
列表。
---
- name: test
hosts: localhost
become: true
tasks:
- parted:
device: /dev/{{ item }}
unit: MiB
register: out
loop:
- sda
- debug:
msg: "{{ out.results | type_debug }}"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。