mirror of
https://github.com/n8n-io/n8n.git
synced 2026-07-28 11:35:03 +02:00
71 lines
2.0 KiB
Bash
71 lines
2.0 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Script to initialize the benchmark environment on a VM
|
|
#
|
|
|
|
set -euo pipefail;
|
|
|
|
CURRENT_USER=$(whoami)
|
|
|
|
# Mount the data disk
|
|
# The data disk is attached at LUN 1 (see infra/modules/benchmark-vm/vm.tf).
|
|
# Use Azure's stable by-LUN symlink instead of /dev/sdX: kernel device order
|
|
# shifts depending on whether the VM size has a local temp disk.
|
|
DATA_DISK=/dev/disk/azure/scsi1/lun1
|
|
|
|
# First wait for the disk to become available
|
|
WAIT_TIME=0
|
|
MAX_WAIT_TIME=60
|
|
|
|
while [ ! -e "$DATA_DISK" ]; do
|
|
if [ $WAIT_TIME -ge $MAX_WAIT_TIME ]; then
|
|
echo "Error: $DATA_DISK did not become available within $MAX_WAIT_TIME seconds."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Waiting for $DATA_DISK to be available... ($WAIT_TIME/$MAX_WAIT_TIME)"
|
|
sleep 1
|
|
WAIT_TIME=$((WAIT_TIME + 1))
|
|
done
|
|
|
|
# Then mount it
|
|
if [ -d "/n8n" ]; then
|
|
echo "Data disk already mounted. Clearing it..."
|
|
sudo rm -rf /n8n/*
|
|
sudo rm -rf /n8n/.[!.]*
|
|
else
|
|
sudo mkdir -p /n8n
|
|
sudo parted "$DATA_DISK" --script mklabel gpt mkpart xfspart xfs 0% 100%
|
|
sudo partprobe "$DATA_DISK"
|
|
# Wait for udev to create the partition symlink before formatting
|
|
sudo udevadm settle
|
|
sudo mkfs.xfs "${DATA_DISK}-part1"
|
|
sudo mount "${DATA_DISK}-part1" /n8n
|
|
sudo chown -R "$CURRENT_USER":"$CURRENT_USER" /n8n
|
|
fi
|
|
|
|
### Remove unneeded dependencies
|
|
# TTY
|
|
sudo systemctl disable getty@tty1.service
|
|
sudo systemctl disable serial-getty@ttyS0.service
|
|
# Snap
|
|
sudo systemctl disable snapd.service
|
|
# Unattended upgrades
|
|
sudo systemctl disable unattended-upgrades.service
|
|
# Cron
|
|
sudo systemctl disable cron.service
|
|
|
|
# Include nodejs v20 repository
|
|
curl -fsSL https://deb.nodesource.com/setup_20.x -o nodesource_setup.sh
|
|
sudo -E bash nodesource_setup.sh
|
|
|
|
# Install docker, docker compose, nodejs
|
|
sudo DEBIAN_FRONTEND=noninteractive apt-get update -yq
|
|
sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq docker.io docker-compose nodejs
|
|
|
|
# Add the current user to the docker group
|
|
sudo usermod -aG docker "$CURRENT_USER"
|
|
|
|
# Install zx
|
|
npm install zx
|