ansible:使用parted模块创建16个分区时出错

ansible:使用parted模块创建16个分区时出错,ansible,parted,Ansible,Parted,我正在尝试使用ansible从4TB块设备创建16个分区。我正在使用parted模块: 根据dmesg,我验证了设备已连接且内核已看到: [root@ZUSE1DLMSORDB1YoCp19h2cn]#dmesg | grep sdd [5.837562]sd 5:0:0:11:[sdd]8589934592 512字节逻辑块:(4.39 TB/4.00 TiB) [5.837564]sd 5:0:0:11:[sdd]4096字节物理块 [5.858252]sd 5:0:0:11:[sdd]写保

我正在尝试使用ansible从4TB块设备创建16个分区。我正在使用parted模块:

根据dmesg,我验证了设备已连接且内核已看到:

[root@ZUSE1DLMSORDB1YoCp19h2cn]#dmesg | grep sdd
[5.837562]sd 5:0:0:11:[sdd]8589934592 512字节逻辑块:(4.39 TB/4.00 TiB)
[5.837564]sd 5:0:0:11:[sdd]4096字节物理块
[5.858252]sd 5:0:0:11:[sdd]写保护已关闭
[5.858254]sd 5:0:0:11:[sdd]模式检测:0f 00 10 00
[5.858449]sd 5:0:0:11:[sdd]写缓存:禁用,读缓存:启用,支持DPO和FUA
[5.911159]sdd:sdd1
[5.930018]sd 5:0:0:11:[sdd]连接的SCSI磁盘
根据我所读到的,如果我需要创建很多分区,我需要使用GPT分区表创建一个扩展分区(?)。GPT分区表的原因是扩展分区将大于2TB。在创建扩展分区之后,我可以创建16个逻辑分区。(我认为我的假设是正确的。)

这是我为之创建的剧本,但不幸的是,我在运行它时遇到了错误

---
- name: Create a new extended (to hold all the logical partitions) partition
  parted:
    device: /dev/sdd
    number: 1
    part_type: extended
    label: gpt
    name: UberPartition
    state: present

- name: Create 16 (= 4096 / 256) logical partitions
  parted:
    device: /dev/sdd1
    number: "{{ item }}"
    part_type: logical
    part_end: 16%
    unit: GB
    state: present
  with_sequence: count=16
当我运行它时,会出现以下错误(我正在通过AWX运行playbook):


我想不出是怎么回事。我尝试了无数种不同的方法,但似乎没有任何效果。任何帮助都将不胜感激。

我能够使用此剧本创建16个分区:

---
- name: Create 16 (= 4096 / 256) partitions
  parted:
    device: /dev/sdd
    number: "{{ (item | int | abs) + 1 }}"
    label: gpt
    name: "disk_{{ (item | int | abs) + 1 }}"
    part_start: "{{ (item | int | abs) * 256 }}GB"
    part_end: "{{ (item | int | abs) * 256 + 256 }}GB"
    unit: GB
    state: present
  with_sequence: start=0 count=16

我使用了百分比,16个相等的分区,我使用了@Gerb所描述的相同的剧本

`

`


请注意,100/16=6.25

Hi根据文档,part_类型只能用“'msdos'或'dvh'分区表”指定。GPT还支持多达128个分区。为什么要做一些“超级分区”,然后是逻辑分区?这就是我缺乏磁盘分区知识导致我做愚蠢事情的原因。你是说我可以创建16个GPT分区吗?如果磁盘是GPT的话-是:)。你可能需要帮我把它哑下来。什么是磁盘GPT?这不是我对parted/fdisk所做的吗?如果是,怎么做?
---
- name: Create 16 (= 4096 / 256) partitions
  parted:
    device: /dev/sdd
    number: "{{ (item | int | abs) + 1 }}"
    label: gpt
    name: "disk_{{ (item | int | abs) + 1 }}"
    part_start: "{{ (item | int | abs) * 256 }}GB"
    part_end: "{{ (item | int | abs) * 256 + 256 }}GB"
    unit: GB
    state: present
  with_sequence: start=0 count=16
    - name: Create 16 equal partition  
      parted:
        device: /dev/sdd
        number: "{{ (item | int | abs) + 1 }}"
        label: linx
        flags: [ lvm ]
        name: "disk{{ (item | int | abs) + 1 }}"
        part_start: "{{ (item | int | abs) * 6.25 }}%"
        part_end: "{{ (item | int | abs) * 6.25 + 6.25 }}%"
        unit: "%"
        state: present
      with_sequence: start=0 count=16