On Wed, Jan 05, 2022 at 12:35:35PM +0000, Richard W.M. Jones wrote:
On Tue, Jan 04, 2022 at 06:53:39PM -0800, Chris V wrote:
I am working on building an automated pipeline with a disk that contains a LUKS partition. since it is running automated i need a method to provide the LUKS key using a file but i keep getting prompted to enter the keys. I am creating a file with only the key stored in it and using the --key option but i still get the key prompt.
here is the command that i am running, can you advise me on what i need to change?: sudo guestfish -a disk.qcow2 --key /dev/sda2:file:key.txt run : part-init /dev/
I should have read the command line a bit closer. The --key option here only applies when you automatically mount the filesystems (with the -i option). Otherwise IIRC it doesn't do anything. So the answer below is still correct. I would definitely use a scripting language with the API.
sda msdos : part-add /dev/sda p 2048 500000 : part-add /dev/sda p 500001 2097118 : mkfs ext4 /dev/sda1 : luks-format /dev/sda2 0 : luks-open /dev/sda2 sda2_crypt : mkfs ext4 /dev/mapper/sda2_crypt
The easiest way is probably this guestfish flag:
--keys-from-stdin Read key or passphrase parameters from stdin. The default is to try to read passphrases from the user by opening /dev/tty.
If there are multiple encrypted devices then you may need to supply multiple keys on stdin, one per line.
You can feed the key by redirecting stdin.
However a better way is likely to use the API directly for what you want, eg. through a Perl or Python script. You can supply the key directly as a parameter when using the API.
Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org