- name: Partition disk (MBR) become: true command: cmd: "sfdisk -q -X dos {{ vyos_raw_img }}" stdin: "2048,+,L,*" when: vyos_parttable_type == "mbr" - name: Partition disk (GPT) become: true command: cmd: "sgdisk -a1 -n1:2048:+256M -t1:EF00 -n2:0:0:+100% -t2:8300 {{ vyos_raw_img }}" when: vyos_parttable_type == "gpt" - name: Partition disk (hybrid) become: true command: cmd: "sgdisk -a1 -n1:2048:4095 -t1:EF02 -n2:4096:+256M -t2:EF00 -n3:0:0:+100% -t3:8300 {{ vyos_raw_img }}" when: vyos_parttable_type == "hybrid" - name: Set partition numbers for next actions (MBR) set_fact: partition_num_root: 1 when: vyos_parttable_type == "mbr" - name: Set partition numbers for next actions (GPT) set_fact: partition_num_efi: 1 partition_num_root: 2 when: vyos_parttable_type == "gpt" - name: Set partition numbers for next actions (hybrid) set_fact: partition_num_efi: 2 partition_num_root: 3 when: vyos_parttable_type == "hybrid" - name: Reread partitions from image and mount to loopback become: true shell: "kpartx -av {{ vyos_raw_img }} | awk '{ print $3 }'" register: loop_partitions - name: Find loop device path become: true shell: "losetup -l -O NAME,BACK-FILE | awk '{ if (match($2, \"{{ vyos_raw_img }}\")) print $1}'" register: loop_device - name: Set vyos_target_drive fact set_fact: vyos_target_drive: "{{ loop_device.stdout | regex_replace('^/dev/(loop.*)$', '/dev/mapper/\\1') }}" - name: Create a fileystem on EFI partition become: true filesystem: fstype: "vfat" device: "{{ vyos_target_drive }}p{{ partition_num_efi }}" opts: "-n EFI -F 32 -s 1" when: partition_num_efi is defined - name: Create a fileystem on root partition become: true filesystem: fstype: "{{ vyos_root_fstype }}" device: "{{ vyos_target_drive }}p{{ partition_num_root }}" opts: "-L persistence" - name: Mount root partition become: true mount: name: "{{ vyos_write_root }}" src: "{{ vyos_target_drive }}p{{ partition_num_root }}" fstype: "{{ vyos_root_fstype }}" state: mounted opts: discard boot: no