0

我正在使用 Ansible 在 Azure 上配置 RHEL VM,它是从市场映像创建的。我正在使用更大的 OS 磁盘创建 VM(128GB 与我认为图像的默认值 64GB),并希望从磁盘的未使用部分创建一个新分区。在 Ansible 中使用 parted 指令时,我可以使用 '100%' 作为part_end参数来告诉它使新分区扩展到最后,但是有没有办法告诉它在下一个未分配的位置启动新分区“点”在磁盘上(或者我需要自己弄清楚那是什么并将其传递进去)?

4

2 回答 2

1

我找到了这个解决方案:

- name: "Get partition start size of /dev/{{ item.0.vg_dev }}"
  community.general.parted:
    device: "/dev/{{ item.0.vg_dev }}"
    unit: "MiB"
  register: "device_info"
- name: "Create Partition /dev/{{ item.0.vg_dev }}"
  community.general.parted:
    device: "/dev/{{ item.0.vg_dev }}"
    number: "{{ item.0.vg_part_num }}"
    part_start: "{% if device_info.partitions is defined and device_info.partitions|length > 0 %}{{ device_info.partitions[-1].end + 1 }}MiB{% else %}0%{% endif %}"
    part_end: "100%"
    label: "gpt"
    flags: [ lvm ]
    unit: "MiB"
    align: "optimal"
    state: "present"
于 2021-11-07T15:15:15.710 回答
0

我忘记了我已经发布了这个。我没有尝试过上面建议的方法,但这就是我最终要做的:

- name: Get the device name for the root disk.
  command: /usr/bin/realpath /dev/disk/cloud/azure_root
  register: rootdev

- name: Update the GPT for the larger disk. 
  command: /usr/sbin/sgdisk -e {{ rootdev.stdout }} && /usr/sbin/partprobe
  become: yes
  become_user: root

- name: Create additional partition on extended OS disk for Kong use.
  parted:
    device: "{{ rootdev.stdout }}"
    number: "3"
    label: gpt
    state: present
    part_start: 69GB
    part_end: 100%
    part_type: primary
于 2021-11-08T16:14:00.843 回答