From 3aaf13770792509196d1386e0da45e0724a30d9b Mon Sep 17 00:00:00 2001 From: Derek Smith Date: Sun, 2 Apr 2023 09:22:38 -0400 Subject: [PATCH] Add lxc storage volume mounting work. --- deploy_vm.sh | 29 ++++++++++++++++++++++++++--- stub_lxc_profile.sh | 15 +++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/deploy_vm.sh b/deploy_vm.sh index 76e8ed8..ac1c99c 100755 --- a/deploy_vm.sh +++ b/deploy_vm.sh @@ -30,7 +30,20 @@ if ! lxc list --format csv | grep -q "$LXD_VM_NAME"; then exit 1 fi - bash -c "./stub_lxc_profile.sh --vm=$VIRTUAL_MACHINE --lxd-hostname=$LXD_VM_NAME" + # create the docker volume + VM_ID=w + if [ "$VIRTUAL_MACHINE" = btcpayserver ]; then + VM_ID="b" + fi + + DOCKER_VOLUME_NAME="$PRIMARY_DOMAIN_IDENTIFIER-$VM_ID""d" + export DOCKER_VOLUME_NAME="$DOCKER_VOLUME_NAME" + if ! lxc storage volume list ss-base | grep -q "$DOCKER_VOLUME_NAME"; then + lxc storage volume create ss-base "$DOCKER_VOLUME_NAME" --type=filesystem + lxc storage volume set ss-base "$DOCKER_VOLUME_NAME" size="${ROOT_DISK_SIZE_GB}GB" + fi + + bash -c "./stub_lxc_profile.sh --vm=$VIRTUAL_MACHINE --lxd-hostname=$LXD_VM_NAME --docker-volume-name=$DOCKER_VOLUME_NAME" # now let's create a new VM to work with. #lxc init --profile="$LXD_VM_NAME" "$BASE_IMAGE_VM_NAME" "$LXD_VM_NAME" --vm @@ -39,8 +52,18 @@ if ! lxc list --format csv | grep -q "$LXD_VM_NAME"; then # let's PIN the HW address for now so we don't exhaust IP # and so we can set DNS internally. lxc config set "$LXD_VM_NAME" "volatile.enp5s0.hwaddr=$MAC_ADDRESS_TO_PROVISION" - lxc config device override "$LXD_VM_NAME" root size="${ROOT_DISK_SIZE_GB}GB" - + #lxc config device override "$LXD_VM_NAME" root size="${ROOT_DISK_SIZE_GB}GB" + + #lxc storage volume attach ss-base "$DOCKER_VOLUME_NAME" "$LXD_VM_NAME" + + # HOME_VOLUME_NAME="$PRIMARY_DOMAIN_IDENTIFIER-$VM_ID""h" + # if ! lxc storage volume list ss-base | grep -q "$HOME_VOLUME_NAME"; then + # lxc storage volume create ss-base "$HOME_VOLUME_NAME" --type=block + # lxc storage volume set ss-base "$HOME_VOLUME_NAME" size="${ROOT_DISK_SIZE_GB}GB" + # fi + + #lxc storage volume attach ss-base "$HOME_VOLUME_NAME" "$LXD_VM_NAME" + # if [ "$VIRTUAL_MACHINE" = btcpayserver ]; then # # attach any volumes # for CHAIN in testnet mainnet; do diff --git a/stub_lxc_profile.sh b/stub_lxc_profile.sh index 5be1b9c..3eb077c 100755 --- a/stub_lxc_profile.sh +++ b/stub_lxc_profile.sh @@ -5,6 +5,7 @@ cd "$(dirname "$0")" VIRTUAL_MACHINE=base LXD_HOSTNAME= +DOCKER_VOLUME_NAME= # grab any modifications from the command line. for i in "$@"; do @@ -17,6 +18,10 @@ for i in "$@"; do VIRTUAL_MACHINE="${i#*=}" shift ;; + --docker-volume-name=*) + DOCKER_VOLUME_NAME="${i#*=}" + shift + ;; *) echo "Unexpected option: $1" exit 1 @@ -222,6 +227,16 @@ devices: type: disk EOF +if [ "$VIRTUAL_MACHINE" != base ]; then + cat >> "$YAML_PATH" <> "$YAML_PATH" <