Ansible中的 parted指令在创建分区时从磁盘上的第一个空闲位置开始



我使用Ansible在Azure上配置RHEL虚拟机,这是从市场映像创建的。我正在用更大的操作系统磁盘创建虚拟机(128GB vs.我认为映像的默认64GB),并希望从磁盘的未使用部分创建一个新分区。当在Ansible中使用parted指令时,我可以使用'100%'作为part_end参数来告诉它使新分区扩展到末尾,但是有没有一种方法可以告诉它在下一个未分配的"点"启动新分区?在磁盘上(或者我需要自己弄清楚这是什么并将其传递进来)?

我找到了这个解决方案:

- 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"

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

- 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

最新更新