首页 > 解决方案 > 确定为什么 parted ansible 模块似乎没有创建分区

问题描述

团队,

我必须在 ubuntu 20 的节点上创建一个分区,并且我正在使用 ansible parted 模块,但我看到它没有创建它,尽管结果是通过的。那么,谁能帮我弄清楚我是否没有使用正确的 item.item 来创建它?但如果这是问题所在,他们为什么 ansible 没有抱怨?

系统节点设备信息

root@node123:~# lsblk | grep nvme
nvme0n1     259:0    0 894.3G  0 disk
nvme1n1     259:1    0 894.3G  0 disk
├─nvme1n1p1 259:3    0   512M  0 part /boot/efi
└─nvme1n1p2 259:4    0 893.8G  0 part /
nvme2n1     259:2    0 894.3G  0 disk #<<<this one am trying to create partition

值.yaml

# Create partition and mount filesystems  to use as service stroage
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

任务


  - name: Fetch partitions info "{{ item.0.device }}"
    parted: device={{ item.0.device }} unit=MiB
    register: device_info_using_values
    loop:  "{{ local_volume_mount_disks|subelements('partitions') }}"

  - debug:
      var: device_info_using_values
    ignore_errors: no

  - debug:
      msg: "{{ item.item[0].device }}"
    ignore_errors: no
    loop: "{{ device_info_using_values.results }}"

  - name: Create partitions from live node device info "{{ item.item[0].device }}"
    parted:
      device: "{{ item.item[0].device }}"
      number: "{{ item.item[0].partitions[0].number}}"
      state: present
      label: gpt
      part_start: "{{ item.item[0].partitions[0].start }}"
      part_end: "{{ item.item[0].partitions[0].end }}"
    loop: "{{ device_info_using_values.results }}"
    register: partitioned_device_live_info

  - name: debug Info from device that is parted
    debug:
      var: partitioned_device_live_info
    ignore_errors: no

  - name: debug after create to get nvme2n1p1 info
    debug:
      msg: "{{ item.item.item[0].device }}"
    ignore_errors: no
    loop: "{{ partitioned_device_live_info.results }}"

  - name: Create ext4 filesystem on partitions
    filesystem:
      fstype: ext4
      dev: "{{ item.item.item[0].device }}"
    loop: "{{ partitioned_device_live_info.results }}"
    register: ext4_fs_result

  - name: Info on ext4 result
    debug:
      var: ext4_fs_result
    ignore_errors: no

输出

PLAY [Local Volume Provisioner and Mount] **************************************
   
   TASK [local_volume_mount : apt-install parted] *********************************
   Tuesday 23 March 2021  17:55:26 +0000 (0:00:00.166)       0:00:00.166 ********* 
   ok: [node123]
   
   TASK [local_volume_mount : Fetch partitions info "{{ item.0.device }}"] ********
   Tuesday 23 March 2021  17:55:35 +0000 (0:00:08.418)       0:00:08.585 ********* 
   ok: [node123] => (item=[{'device': '/dev/nvme2n1', 'partitions': [{'number': 1, 'start': '1GiB', 'end': '800GiB', 'storage_class': 'ssd-wkr'}]}, {'number': 1, 'start': '1GiB', 'end': '800GiB', 'storage_class': 'ssd-wkr'}])
   
   TASK [local_volume_mount : debug] **********************************************
   Tuesday 23 March 2021  17:55:35 +0000 (0:00:00.421)       0:00:09.006 ********* 
   ok: [node123] => {
       "device_info_using_values": {
           "changed": false,
           "msg": "All items completed",
           "results": [
               {
                   "ansible_loop_var": "item",
                   "changed": false,
                   "disk": {
                       "dev": "/dev/nvme2n1",
                       "logical_block": 512,
                       "model": "SAMSUNG MZQLW960HMJP-00003",
                       "physical_block": 512,
                       "size": 915715.0,
                       "table": "loop",
                       "unit": "mib"
                   },
                   "failed": false,
                   "invocation": {
                       "module_args": {
                           "align": "optimal",
                           "device": "/dev/nvme2n1",
                           "flags": null,
                           "label": "msdos",
                           "name": null,
                           "number": null,
                           "part_end": "100%",
                           "part_start": "0%",
                           "part_type": "primary",
                           "state": "info",
                           "unit": "MiB"
                       }
                   },
                   "item": [
                       {
                           "device": "/dev/nvme2n1",
                           "partitions": [
                               {
                                   "end": "800GiB",
                                   "number": 1,
                                   "start": "1GiB",
                                   "storage_class": "ssd-wkr"
                               }
                           ]
                       },
                       {
                           "end": "800GiB",
                           "number": 1,
                           "start": "1GiB",
                           "storage_class": "ssd-wkr"
                       }
                   ],
                   "partitions": [
                       {
                           "begin": 0.0,
                           "end": 915715.0,
                           "flags": [],
                           "fstype": "ext4",
                           "name": "",
                           "num": 1,
                           "size": 915715.0,
                           "unit": "mib"
                       }
                   ],
                   "script": "unit 'MiB' print"
               }
           ]
       }
   }
   
   TASK [local_volume_mount : debug] **********************************************
   Tuesday 23 March 2021  17:55:35 +0000 (0:00:00.028)       0:00:09.035 ********* 
   ok: [node123] => (item={'invocation': {'module_args': {'part_start': '0%', 'part_end': '100%', 'name': None, 'align': 'optimal', 'number': None, 'label': 'msdos', 'state': 'info', 'part_type': 'primary', 'flags': None, 'device': '/dev/nvme2n1', 'unit': 'MiB'}}, 'partitions': [{'begin': 0.0, 'end': 915715.0, 'name': '', 'fstype': 'ext4', 'num': 1, 'flags': [], 'unit': 'mib', 'size': 915715.0}], 'disk': {'dev': '/dev/nvme2n1', 'physical_block': 512, 'table': 'loop', 'logical_block': 512, 'model': 'SAMSUNG MZQLW960HMJP-00003', 'unit': 'mib', 'size': 915715.0}, 'changed': False, 'script': "unit 'MiB' print", 'failed': False, 'item': [{'device': '/dev/nvme2n1', 'partitions': [{'number': 1, 'start': '1GiB', 'end': '800GiB', 'storage_class': 'ssd-wkr'}]}, {'number': 1, 'start': '1GiB', 'end': '800GiB', 'storage_class': 'ssd-wkr'}], 'ansible_loop_var': 'item'}) => {
       "msg": "/dev/nvme2n1"
   }
   
   TASK [local_volume_mount : Create partitions from live node device info "{{ item.item[0].device }}"] ***
   Tuesday 23 March 2021  17:55:35 +0000 (0:00:00.034)       0:00:09.069 ********* 
   changed: [node123] => (item={'invocation': {'module_args': {'part_start': '0%', 'part_end': '100%', 'name': None, 'align': 'optimal', 'number': None, 'label': 'msdos', 'state': 'info', 'part_type': 'primary', 'flags': None, 'device': '/dev/nvme2n1', 'unit': 'MiB'}}, 'partitions': [{'begin': 0.0, 'end': 915715.0, 'name': '', 'fstype': 'ext4', 'num': 1, 'flags': [], 'unit': 'mib', 'size': 915715.0}], 'disk': {'dev': '/dev/nvme2n1', 'physical_block': 512, 'table': 'loop', 'logical_block': 512, 'model': 'SAMSUNG MZQLW960HMJP-00003', 'unit': 'mib', 'size': 915715.0}, 'changed': False, 'script': "unit 'MiB' print", 'failed': False, 'item': [{'device': '/dev/nvme2n1', 'partitions': [{'number': 1, 'start': '1GiB', 'end': '800GiB', 'storage_class': 'ssd-wkr'}]}, {'number': 1, 'start': '1GiB', 'end': '800GiB', 'storage_class': 'ssd-wkr'}], 'ansible_loop_var': 'item'})
   
   TASK [local_volume_mount : debug Info from device that is parted] **************
   Tuesday 23 March 2021  17:55:36 +0000 (0:00:00.403)       0:00:09.473 ********* 
   ok: [node123] => {
       "partitioned_device_live_info": {
           "changed": true,
           "msg": "All items completed",
           "results": [
               {
                   "ansible_loop_var": "item",
                   "changed": true,
                   "disk": {
                       "dev": "/dev/nvme2n1",
                       "logical_block": 512,
                       "model": "SAMSUNG MZQLW960HMJP-00003",
                       "physical_block": 512,
                       "size": 937692504.0,
                       "table": "gpt",
                       "unit": "kib"
                   },
                   "failed": false,
                   "invocation": {
                       "module_args": {
                           "align": "optimal",
                           "device": "/dev/nvme2n1",
                           "flags": null,
                           "label": "gpt",
                           "name": null,
                           "number": 1,
                           "part_end": "800GiB",
                           "part_start": "1GiB",
                           "part_type": "primary",
                           "state": "present",
                           "unit": "KiB"
                       }
                   },
                   "item": {
                       "ansible_loop_var": "item",
                       "changed": false,
                       "disk": {
                           "dev": "/dev/nvme2n1",
                           "logical_block": 512,
                           "model": "SAMSUNG MZQLW960HMJP-00003",
                           "physical_block": 512,
                           "size": 915715.0,
                           "table": "loop",
                           "unit": "mib"
                       },
                       "failed": false,
                       "invocation": {
                           "module_args": {
                               "align": "optimal",
                               "device": "/dev/nvme2n1",
                               "flags": null,
                               "label": "msdos",
                               "name": null,
                               "number": null,
                               "part_end": "100%",
                               "part_start": "0%",
                               "part_type": "primary",
                               "state": "info",
                               "unit": "MiB"
                           }
                       },
                       "item": [
                           {
                               "device": "/dev/nvme2n1",
                               "partitions": [
                                   {
                                       "end": "800GiB",
                                       "number": 1,
                                       "start": "1GiB",
                                       "storage_class": "ssd-wkr"
                                   }
                               ]
                           },
                           {
                               "end": "800GiB",
                               "number": 1,
                               "start": "1GiB",
                               "storage_class": "ssd-wkr"
                           }
                       ],
                       "partitions": [
                           {
                               "begin": 0.0,
                               "end": 915715.0,
                               "flags": [],
                               "fstype": "ext4",
                               "name": "",
                               "num": 1,
                               "size": 915715.0,
                               "unit": "mib"
                           }
                       ],
                       "script": "unit 'MiB' print"
                   },
                   "partitions": [],
                   "script": "unit KiB mklabel gpt"
               }
           ]
       }
   }
   
   TASK [local_volume_mount : debug after create to get nvme2n1p1 info] ***********
   Tuesday 23 March 2021  17:55:36 +0000 (0:00:00.029)       0:00:09.502 ********* 
   ok: [node123] => (item={'invocation': {'module_args': {'part_start': '1GiB', 'part_end': '800GiB', 'name': None, 'align': 'optimal', 'number': 1, 'label': 'gpt', 'state': 'present', 'part_type': 'primary', 'flags': None, 'device': '/dev/nvme2n1', 'unit': 'KiB'}}, 'partitions': [], 'disk': {'dev': '/dev/nvme2n1', 'physical_block': 512, 'table': 'gpt', 'logical_block': 512, 'model': 'SAMSUNG MZQLW960HMJP-00003', 'unit': 'kib', 'size': 937692504.0}, 'changed': True, 'script': 'unit KiB mklabel gpt', 'failed': False, 'item': {'invocation': {'module_args': {'part_start': '0%', 'part_end': '100%', 'name': None, 'align': 'optimal', 'number': None, 'label': 'msdos', 'state': 'info', 'part_type': 'primary', 'flags': None, 'device': '/dev/nvme2n1', 'unit': 'MiB'}}, 'partitions': [{'begin': 0.0, 'end': 915715.0, 'name': '', 'fstype': 'ext4', 'num': 1, 'flags': [], 'unit': 'mib', 'size': 915715.0}], 'disk': {'dev': '/dev/nvme2n1', 'physical_block': 512, 'table': 'loop', 'logical_block': 512, 'model': 'SAMSUNG MZQLW960HMJP-00003', 'unit': 'mib', 'size': 915715.0}, 'changed': False, 'script': "unit 'MiB' print", 'failed': False, 'item': [{'device': '/dev/nvme2n1', 'partitions': [{'number': 1, 'start': '1GiB', 'end': '800GiB', 'storage_class': 'ssd-wkr'}]}, {'number': 1, 'start': '1GiB', 'end': '800GiB', 'storage_class': 'ssd-wkr'}], 'ansible_loop_var': 'item'}, 'ansible_loop_var': 'item'}) => {
       "msg": "/dev/nvme2n1"
   }
   
   TASK [local_volume_mount : Create ext4 filesystem on partitions] ***************
   Tuesday 23 March 2021  17:55:36 +0000 (0:00:00.039)       0:00:09.542 ********* 
   changed: [node123] => (item={'invocation': {'module_args': {'part_start': '1GiB', 'part_end': '800GiB', 'name': None, 'align': 'optimal', 'number': 1, 'label': 'gpt', 'state': 'present', 'part_type': 'primary', 'flags': None, 'device': '/dev/nvme2n1', 'unit': 'KiB'}}, 'partitions': [], 'disk': {'dev': '/dev/nvme2n1', 'physical_block': 512, 'table': 'gpt', 'logical_block': 512, 'model': 'SAMSUNG MZQLW960HMJP-00003', 'unit': 'kib', 'size': 937692504.0}, 'changed': True, 'script': 'unit KiB mklabel gpt', 'failed': False, 'item': {'invocation': {'module_args': {'part_start': '0%', 'part_end': '100%', 'name': None, 'align': 'optimal', 'number': None, 'label': 'msdos', 'state': 'info', 'part_type': 'primary', 'flags': None, 'device': '/dev/nvme2n1', 'unit': 'MiB'}}, 'partitions': [{'begin': 0.0, 'end': 915715.0, 'name': '', 'fstype': 'ext4', 'num': 1, 'flags': [], 'unit': 'mib', 'size': 915715.0}], 'disk': {'dev': '/dev/nvme2n1', 'physical_block': 512, 'table': 'loop', 'logical_block': 512, 'model': 'SAMSUNG MZQLW960HMJP-00003', 'unit': 'mib', 'size': 915715.0}, 'changed': False, 'script': "unit 'MiB' print", 'failed': False, 'item': [{'device': '/dev/nvme2n1', 'partitions': [{'number': 1, 'start': '1GiB', 'end': '800GiB', 'storage_class': 'ssd-wkr'}]}, {'number': 1, 'start': '1GiB', 'end': '800GiB', 'storage_class': 'ssd-wkr'}], 'ansible_loop_var': 'item'}, 'ansible_loop_var': 'item'})
   
   TASK [local_volume_mount : Info on ext4 result] ********************************
   Tuesday 23 March 2021  17:55:39 +0000 (0:00:03.021)       0:00:12.563 ********* 
   ok: [node123] => {
       "ext4_fs_result": {
           "changed": true,
           "msg": "All items completed",
           "results": [
               {
                   "ansible_loop_var": "item",
                   "changed": true,
                   "failed": false,
                   "invocation": {
                       "module_args": {
                           "dev": "/dev/nvme2n1",
                           "force": false,
                           "fstype": "ext4",
                           "opts": null,
                           "resizefs": false
                       }
                   },
                   "item": {
                       "ansible_loop_var": "item",
                       "changed": true,
                       "disk": {
                           "dev": "/dev/nvme2n1",
                           "logical_block": 512,
                           "model": "SAMSUNG MZQLW960HMJP-00003",
                           "physical_block": 512,
                           "size": 937692504.0,
                           "table": "gpt",
                           "unit": "kib"
                       },
                       "failed": false,
                       "invocation": {
                           "module_args": {
                               "align": "optimal",
                               "device": "/dev/nvme2n1",
                               "flags": null,
                               "label": "gpt",
                               "name": null,
                               "number": 1,
                               "part_end": "800GiB",
                               "part_start": "1GiB",
                               "part_type": "primary",
                               "state": "present",
                               "unit": "KiB"
                           }
                       },
                       "item": {
                           "ansible_loop_var": "item",
                           "changed": false,
                           "disk": {
                               "dev": "/dev/nvme2n1",
                               "logical_block": 512,
                               "model": "SAMSUNG MZQLW960HMJP-00003",
                               "physical_block": 512,
                               "size": 915715.0,
                               "table": "loop",
                               "unit": "mib"
                           },
                           "failed": false,
                           "invocation": {
                               "module_args": {
                                   "align": "optimal",
                                   "device": "/dev/nvme2n1",
                                   "flags": null,
                                   "label": "msdos",
                                   "name": null,
                                   "number": null,
                                   "part_end": "100%",
                                   "part_start": "0%",
                                   "part_type": "primary",
                                   "state": "info",
                                   "unit": "MiB"
                               }
                           },
                           "item": [
                               {
                                   "device": "/dev/nvme2n1",
                                   "partitions": [
                                       {
                                           "end": "800GiB",
                                           "number": 1,
                                           "start": "1GiB",
                                           "storage_class": "ssd-wkr"
                                       }
                                   ]
                               },
                               {
                                   "end": "800GiB",
                                   "number": 1,
                                   "start": "1GiB",
                                   "storage_class": "ssd-wkr"
                               }
                           ],
                           "partitions": [
                               {
                                   "begin": 0.0,
                                   "end": 915715.0,
                                   "flags": [],
                                   "fstype": "ext4",
                                   "name": "",
                                   "num": 1,
                                   "size": 915715.0,
                                   "unit": "mib"
                               }
                           ],
                           "script": "unit 'MiB' print"
                       },
                       "partitions": [],
                       "script": "unit KiB mklabel gpt"
                   }
               }
           ]
       }
   }



系统上的预期输出应

下面是由本地 parted 模块在命令行步骤上创建的

1 - parted /dev/nvme2n1
2 - mklabel gpt
3 - mkpart primary ext4 1MB 915715MB
4 - quit

上面的步骤 1-4 显示了我想要通过 ansible.

root@node123:~# lsblk | grep nvme
nvme0n1     259:0    0 894.3G  0 disk 
nvme1n1     259:1    0 894.3G  0 disk 
├─nvme1n1p1 259:3    0   512M  0 part /boot/efi
└─nvme1n1p2 259:4    0 893.8G  0 part /
nvme2n1     259:2    0 894.3G  0 disk 
└─nvme2n1p1 259:6    0 852.8G  0 part 

标签: ansibleansible-factsparted

解决方案


推荐阅读