From 12edb1b1526cff9c5a09442de64fbd0a1479be7e Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Fri, 7 Feb 2025 18:34:26 -0600 Subject: [PATCH] wip: newvm: configure vm for dynamic inventory --- newvm.sh | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/newvm.sh b/newvm.sh index 17e4894..89854ef 100755 --- a/newvm.sh +++ b/newvm.sh @@ -1,10 +1,12 @@ #!/bin/sh # vim: set sw=4 ts=4 sts=4 et : +METADATA_XMLNS='http://du5t1n.me/xmlns/libvirt/metadata/' + memory=2048 vcpus=2 disk_size=16 -kickstart=http://rosalina.pyrocufflink.blue/~dustin/kickstart/fedora.ks +kickstart=https://git.pyrocufflink.net/infra/kickstart/raw/branch/master/fedora.ks fedora=$(rpm -E %fedora) network=network=prod dnsdomain=pyrocufflink.blue @@ -73,6 +75,20 @@ while [ $# -gt 0 ]; do --domain=*) dnsdomain=${1#=*} ;; + --cfg-branch) + shift + cfg_branch=$1 + ;; + --cfg-branch=*) + cfg_branch=${1#*=} + ;; + --group) + shift + groups_xml="${groups_xml}" + ;; + --group=*) + groups_xml="${groups_xml}" + ;; --no-console|--noconsole) console=false ;; @@ -139,6 +155,7 @@ extra_args="${extra_args} inst.notmux quiet systemd.show_status=1 console=ttyS0" set -- \ --name ${name} \ + --metadata title=${hostname} \ --memory ${memory} \ --cpu host \ --location ${location} \ @@ -153,10 +170,21 @@ set -- \ --boot uefi \ "$@" +if [ -n "${cfg_branch}" ]; then + set -- "$@" --qemu-commandline="-fw_cfg opt/dch/cfg-branch,string=${cfg_branch}" +fi + if $console; then set -- "$@" --autoconsole text else set -- "$@" --noautoconsole --wait -1 fi -exec virt-install "$@" +( +virsh event --event lifecycle --loop | awk '/Started/{exit}' +virsh metadata ${name} --live --config ${METADATA_XMLNS} dch \ + "${groups_xml}" +) & + +virt-install "$@" +wait