I am trying to mount a disk using ansible automatically using the following command:
fdisk -l | grep "64G" | grep -Eo "/dev/sd."
This outputs /dev/sda1
and I am adding that to the /etc/fstab/
. But I want to add the UUID instead.
Is there a method to fetch the UUID by passing the size of the disk?
(I have only 1 disk attached with 64G of size so it returns only one output, want to know how to fetch the UUID instead of /dev/sda
)
You can use the blkid
command passing in a specific device - e.g. blkid /dev/sda1
or you can browse the directory /dev/disk/by-uuid/
, which has the uuids represented as symbolic links to the device nodes e.g. ls -l /dev/disk/by-uuid/ | grep /dev/sda1
with ansible though, I think you can access the uuids and the device tree from ansible facts, which are collected for each host and accessible under the ansible_facts
dictionary
https://docs.ansible.com/ansible/latest/user_guide/playbooks_vars_facts.html#ansible-facts
so it may be possible to construct an ansible when
conditional clause against the ansible_devices
and attach that to a mount task