parted - azure managed disks - unrecognized disk label

257 views
Skip to first unread message

deewon

unread,
Feb 10, 2020, 4:49:58 AM2/10/20
to Ansible Project
Hi all,

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

Thanks

Hugo Gonzalez

unread,
Feb 10, 2020, 2:01:17 PM2/10/20
to ansible...@googlegroups.com

On 2/10/20 3:49 AM, 'deewon' via Ansible Project wrote:
Hi all,

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.


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.

https://docs.ansible.com/ansible/latest/modules/parted_module.html#parameter-label

So I guess you can pass it along your partition definitions. Just make sure it works idempotently, I haven't tested it.

Hugo G.





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

Thanks

--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/49c9a80b-1302-4463-a6ee-0e1a2e049e8b%40googlegroups.com.

deewon

unread,
Feb 11, 2020, 5:41:44 AM2/11/20
to Ansible Project
Thanks Hugo!

I gave this a go with the label explicitly specified and it returned the same error i.e.

- name: Partition Disk
  parted
:
    device
: /dev/sdc
    number
: 1
    state
: present
    label
: msdos

  

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}


I suppose the issue is more related to the disk profile as opposed to the parted module in itself?  The disk itself was created as recommended by azure (https://docs.microsoft.com/en-us/azure/virtual-machines/linux/add-disk

Regards
To unsubscribe from this group and stop receiving emails from it, send an email to ansible...@googlegroups.com.

deewon

unread,
Feb 11, 2020, 7:23:33 AM2/11/20
to Ansible Project
I got to the bottom of this eventually :)

The task was running on the controller which didn't have a /dev/sdc device :)

Simply delegating the task to the remote node fixed the problem

Thanks!

Hugo Gonzalez

unread,
Feb 12, 2020, 12:09:57 PM2/12/20
to ansible...@googlegroups.com



On 2/11/20 6:23 AM, 'deewon' via Ansible Project wrote:
I got to the bottom of this eventually :)

The task was running on the controller which didn't have a /dev/sdc device :)


Whoa! careful there! :)

Hugo G.

deewon

unread,
Feb 13, 2020, 4:54:13 AM2/13/20
to Ansible Project
I know right :) 

It was an isolated lab environment so no harm done. 

appreciated!
Reply all
Reply to author
Forward
0 new messages