infra-controller/install.sh
Jeremie Fraeys 6ca0219902
Some checks failed
Deploy / deploy (push) Failing after 9s
Deploy infra-controller to services server
2026-01-23 14:01:54 -05:00

51 lines
1.7 KiB
Bash

#!/bin/bash
set -e
echo "Installing Infrastructure Controller..."
python_version=$(python3 --version | awk '{print $2}')
required_version="3.11"
if [ "$(printf '%s\n' "$required_version" "$python_version" | sort -V | head -n1)" != "$required_version" ]; then
echo "Error: Python 3.11+ required, found $python_version"
exit 1
fi
if ! id infractl >/dev/null 2>&1; then
echo "Creating infractl user..."
sudo useradd -r -s /bin/false -d /opt/infra-controller infractl
fi
sudo mkdir -p /opt/infra-controller
sudo mkdir -p /etc/infra-controller
sudo mkdir -p /var/lib/infra-controller
sudo mkdir -p /var/log/infra-controller
echo "Installing Python package..."
sudo python3 -m venv /opt/infra-controller/venv
sudo /opt/infra-controller/venv/bin/pip install --upgrade pip
sudo /opt/infra-controller/venv/bin/pip install -e .
if [ ! -f /etc/infra-controller/config.toml ]; then
echo "Installing default configuration..."
sudo cp config/controller.toml.example /etc/infra-controller/config.toml
fi
if [ ! -f /etc/infra-controller/controller.env ]; then
sudo cp systemd/infra-controller.env /etc/infra-controller/controller.env
fi
echo "Installing systemd service..."
sudo cp systemd/infra-controller.service /etc/systemd/system/
sudo cp systemd/infra-controller-once.service /etc/systemd/system/
sudo cp systemd/infra-controller-watch.service /etc/systemd/system/
sudo systemctl daemon-reload
echo "Enabling infra-controller watch service..."
sudo systemctl enable infra-controller-watch.service
sudo chown -R infractl:infractl /opt/infra-controller
sudo chown -R infractl:infractl /var/lib/infra-controller
sudo chown -R infractl:infractl /var/log/infra-controller
echo "Installation complete!"