65 lines
2.1 KiB
Bash
Executable File
65 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# --- Sodistore Home ---
|
|
REMOTE_USER="inesco"
|
|
REMOTE_HOST="10.2.5.33"
|
|
HOME_PATH="/home/inesco/SodiStoreHome"
|
|
REMOTE_BASE="/home/inesco/SodiStoreHome/ModbusTCP"
|
|
# --- Sodistore Max ---
|
|
# REMOTE_USER="ie-entwicklung"
|
|
# REMOTE_HOST="10.2.5.25"
|
|
# HOME_PATH="/home/ie-entwicklung/salimax"
|
|
# REMOTE_BASE="/home/ie-entwicklung/salimax/ModbusTCP"
|
|
|
|
REMOTE_DIST="$REMOTE_BASE/dist"
|
|
SERVICE_NAME="ModbusTCP.service"
|
|
PYTHON_FILE="modbus_tcp_server.py"
|
|
SERVICE_FILE="ModbusTCP.service"
|
|
BINARY_NAME="modbus_tcp_server"
|
|
|
|
# SUDO_PASSWORD="Salimax4x25"
|
|
|
|
# echo "==> Preparing Python virtual environment..."
|
|
# cd "$HOME_PATH"
|
|
# python3 -m venv venv
|
|
# source venv/bin/activate
|
|
# pip install watchdog
|
|
# pip install pymodbus==2.5.3
|
|
# pip install pyinstaller
|
|
# deactivate
|
|
|
|
# echo "==> Copying source file to remote..."
|
|
scp "$PYTHON_FILE" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_BASE/"
|
|
# scp "$SERVICE_FILE" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_BASE/"
|
|
|
|
echo "==> Building Python binary on remote..."
|
|
ssh "$REMOTE_USER@$REMOTE_HOST" "
|
|
cd $HOME_PATH && \
|
|
source venv/bin/activate && \
|
|
cd ModbusTCP && \
|
|
pyinstaller --onefile $PYTHON_FILE
|
|
"
|
|
|
|
echo "==> Cleaning up temporary build artifacts on remote..."
|
|
ssh "$REMOTE_USER@$REMOTE_HOST" "
|
|
cd $REMOTE_BASE && \
|
|
rm -f $PYTHON_FILE && \
|
|
rm -rf build __pycache__ *.spec
|
|
# "
|
|
echo "==> Setting up systemd service on remote..."
|
|
ssh "$REMOTE_USER@$REMOTE_HOST" "
|
|
echo '$SUDO_PASSWORD' | sudo -S cp '$REMOTE_BASE/ModbusTCP.service' /etc/systemd/system/"
|
|
|
|
echo "==> Restarting systemd service on remote..."
|
|
ssh "$REMOTE_USER@$REMOTE_HOST" "
|
|
echo '$SUDO_PASSWORD' | sudo -S setcap 'cap_net_bind_service=+ep' '$REMOTE_BASE/dist/modbus_tcp_server' && \
|
|
echo '$SUDO_PASSWORD' | sudo -S systemctl daemon-reload && \
|
|
echo '$SUDO_PASSWORD' | sudo -S systemctl enable $SERVICE_NAME && \
|
|
echo '$SUDO_PASSWORD' | sudo -S systemctl stop $SERVICE_NAME && \
|
|
echo '$SUDO_PASSWORD' | sudo -S systemctl start $SERVICE_NAME && \
|
|
echo '$SUDO_PASSWORD' | sudo -S systemctl status $SERVICE_NAME --no-pager -l
|
|
"
|
|
|
|
echo "Deployment to $REMOTE_HOST completed successfully!"
|