I’m pretty certain someone has figured this out so any hints will be appreciated
I’ve attached an azure managed disk to a linux vm but noticed it doesn’t have any disk label i.e.
Error: /dev/sdc: unrecognised disk label
Model: Msft Virtual Disk (scsi)
Disk /dev/sdc: 18.3GB
Sector size (logical/physical): 512B/4096B
Partition Table: unknown
Disk Flags:
Consequently, the ansible parted module returns the below error when attempting to create a partition
TASK [role_azure_disk : Partition Azure Disk] ***********************************************************************************************************************************************************************************************
task path: /etc/ansible/roles/role_azure_disk/tasks/main.yml:7
fatal: [labserver]: FAILED! => {“changed”: false, “err”: “Error: Could not stat device /dev/sdc - No such file or directory.\n”, “msg”: “Error while getting device information with parted script: ‘/sbin/parted -s -m /dev/sdc – unit ‘KiB’ print’”, “out”: “”, “rc”: 1}
To achieve idempotence when re-running playbooks , I’m trying to avoid using fdisk passed to the shell module i.e. (echo n; echo p; echo 1; echo ; echo ; echo w) | sudo fdisk /dev/sdc
Will appreciate any ideas on how to get around this
The disk label is the partition table, and will not be recognized for an unpartitioned disk. There is a parameter in the module called “label” with a default of “msdos” as the table format. So I guess you can pass it along your partition definitions. Just make sure it works idempotently, I haven’t tested it. Hugo G.
TASK [role_azure_disk : Partition Azure Disk] *********************************************************************************************************************************************************************************************** task path: /etc/ansible/roles/role_azure_disk/tasks/main.yml:19 fatal: [dbbox8]: FAILED! => {"changed": false, "err": "Error: Could not stat device /dev/sdc - No such file or directory.\n", "msg": "Error while getting device information with parted script: '/sbin/parted -s -m /dev/sdc -- unit 'KiB' print'", "out": "", "rc": 1}