Running update grub-pc in noninteractive mode

We are trying to update packages on several AWS servers via ansible. In the beginning of our playbook we have the environment to noninteractive like this:
environment:
DEBIAN_FRONTEND: noninteractive

When I run an update (or try to install anything, I get the error stating “/dev/sda does not exist”. That is because for example, when provisioning AWS nodes, the disk type is not /dev/sda but something else.

My question is how do i run update grub-pc with a specific disk? I’m assuming I would get the disk “name” from ansible_facts (devices), grab the first disk, then run something similar to “apt install grub-pc /dev/nvme01”

Is there a way to do this? I tried the line above and it failed and I’m out of ideas.

You may try to gather fact, register the fact then execute the command in the next task. For me i usually use shell to query what i need before proceeding next step, save a bit of time.

— Example:

The only issue is that I don’t know what the name of the disk is - /dev/sda, dev/nvme0n1p1, etc.

Example if you know your command only need to execute from the first disk

fdisk -l | grep “^/dev/” | cut -d’ ’ -f1

You may need to custom abit then.

Vào Th 2, 23 thg 10, 2023 vào lúc 18:45 Kathy Lyons <lyonsfive@gmail.com> đã viết:

What exactly do you mean by ‘update packages’?
We’re using Debian EC2 instances and never had to bother with manually selecting disks/devices…

That’s great - thank you!

Now, does anyone know how I can do an “update grub-pc” with that particular hard drive so it doesn’t prompt me for the disk drive?

Dick - just this morning I went to update packages on an AWS instance and it failed because the disk was not /dev/sda. I had to logon to the box, issue apt update -y, then a dialog popped up asking me for the drive to install grub-pc on.

What AMI are you using?

A generic Deb 11 image - not one we “own”.