From 74ba0b70feab2a3c3d1ef85d30f096e471f34d5c Mon Sep 17 00:00:00 2001 From: JOLIMAITRE Matthieu Date: Sat, 16 Mar 2024 00:48:20 +0100 Subject: [PATCH] change script to use nat network instead of bridge, and account for moved profiles --- src/build.sh | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/src/build.sh b/src/build.sh index 12b80b9..1b83cb4 100755 --- a/src/build.sh +++ b/src/build.sh @@ -5,16 +5,17 @@ cd "$(dirname "$(realpath "$0")")" alias log='echo [build.sh]' +TMP_DIR="${TMP_DIR:-"$PWD/../tmp"}" +OUT_DIR="${OUT_DIR:-"$PWD/../output"}" VBOX_VERSION=$(VBoxManage --version | cut -d 'r' -f 1) -ETH_DEV=$(route | grep '^default' | grep -o '[^ ]*$') VM_NAME="epitls_build" log "updating environment" - sudo rm -fr tmp - mkdir -p tmp output - if ! [ -f output/guest_add.iso ] - then wget -O output/guest_add.iso "https://download.virtualbox.org/virtualbox/$VBOX_VERSION/VBoxGuestAdditions_$VBOX_VERSION.iso" + sudo rm -fr "$TMP_DIR" + mkdir -p "$TMP_DIR" "$OUT_DIR" + if ! [ -f "$OUT_DIR/guest_add.iso" ] + then wget -O "$OUT_DIR/guest_add.iso" "https://download.virtualbox.org/virtualbox/$VBOX_VERSION/VBoxGuestAdditions_$VBOX_VERSION.iso" fi @@ -22,21 +23,21 @@ AURS="zerofree" log "creating package db" - rm -fr /tmp/custom-db - mkdir /tmp/custom-db + rm -fr "$TMP_DIR/custom-db" + mkdir "$TMP_DIR/custom-db" for aur in $AURS do - git clone "https://aur.archlinux.org/$aur.git" "/tmp/custom-db/$aur" - ( cd "/tmp/custom-db/$aur" && makepkg; ) - mv /tmp/custom-db/$aur/$aur-* /tmp/custom-db/ - repo-add /tmp/custom-db/custom.db.tar.gz /tmp/custom-db/$aur-*.pkg.tar.zst + git clone "https://aur.archlinux.org/$aur.git" "$TMP_DIR/custom-db/$aur" + ( cd "$TMP_DIR/custom-db/$aur" && makepkg; ) + mv "$TMP_DIR"/custom-db/$aur/$aur-* "$TMP_DIR/custom-db/" + repo-add "$TMP_DIR/custom-db/custom.db.tar.gz" "$TMP_DIR/custom-db"/$aur-*.pkg.tar.zst done log "creating iso" - sudo mkarchiso -v -w $PWD/tmp/wdir -r -o $PWD/output $PWD/profile - rm -f output/install.iso - mv output/archlinux-*.iso output/install.iso + sudo mkarchiso -v -w "$TMP_DIR/wdir" -r -o "$OUT_DIR" "$PWD/profile" + rm -f "$OUT_DIR/install.iso" + mv "$OUT_DIR"/archlinux-*.iso "$OUT_DIR/install.iso" if VBoxManage showvminfo $VM_NAME 2> /dev/null @@ -47,26 +48,27 @@ fi log "creating VM" VBoxManage createvm --name=$VM_NAME --ostype=ArchLinux_64 --register - VBoxManage modifyvm $VM_NAME --cpus=4 --memory=4096 --vram=12 --firmware=efi - VBoxManage modifyvm $VM_NAME --nic1=bridged --bridgeadapter1=$ETH_DEV - VBoxManage createhd --filename=$PWD/tmp/drive.vdi --size=$((1024 * 20)) --variant=Standard + VBoxManage modifyvm $VM_NAME --cpus=16 --memory=8192 --vram=32 --firmware=efi + VBoxManage modifyvm $VM_NAME --nic1=nat + VBoxManage createhd --filename="$TMP_DIR/drive.vdi" --size=$((1024 * 20)) --variant=Standard VBoxManage storagectl $VM_NAME --name=SATA --add sata --bootable on - VBoxManage storageattach $VM_NAME --storagectl=SATA --port=0 --device=0 --type=hdd --medium=$PWD/tmp/drive.vdi + VBoxManage storageattach $VM_NAME --storagectl=SATA --port=0 --device=0 --type=hdd --medium="$TMP_DIR/drive.vdi" VBoxManage storagectl $VM_NAME --name=IDE --add ide - VBoxManage storageattach $VM_NAME --storagectl=IDE --port=0 --device=0 --type=dvddrive --medium=$PWD/output/install.iso - VBoxManage storageattach $VM_NAME --storagectl=IDE --port=1 --device=1 --type=dvddrive --medium=$PWD/output/guest_add.iso + VBoxManage storageattach $VM_NAME --storagectl=IDE --port=0 --device=0 --type=dvddrive --medium="$OUT_DIR/install.iso" + VBoxManage storageattach $VM_NAME --storagectl=IDE --port=1 --device=1 --type=dvddrive --medium="$OUT_DIR/guest_add.iso" log "running VM with iso" - virtualboxvm --startvm $VM_NAME --dvd $PWD/output/install.iso + virtualboxvm --startvm $VM_NAME --dvd "$OUT_DIR/install.iso" log "exporting VM" + VBoxManage modifyvm $VM_NAME --cpus=4 --memory=4096 --vram=24 VBoxManage storageattach $VM_NAME --storagectl=IDE --port=0 --device=0 --medium=none # removes iso after run VBoxManage storageattach $VM_NAME --storagectl=IDE --port=1 --device=1 --medium=none # removes iso after run - VBoxManage modifyhd $PWD/tmp/drive.vdi -compact - rm -f $PWD/output/epitls.ova - VBoxManage export $VM_NAME --output=$PWD/output/epitls.ova --vsys=0 --vmname=epitls --description="VM pour le développement à EPITA Toulouse." + VBoxManage modifyhd "$TMP_DIR/drive.vdi" -compact + rm -f "$OUT_DIR/epitls.ova" + VBoxManage export $VM_NAME --output="$OUT_DIR/epitls.ova" --vsys=0 --vmname=epitls --description="VM pour le développement à EPITA Toulouse." log "disposing VM"