Files
lightOps/web/public/install-agent.sh

69 lines
1.5 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env sh
set -eu
SERVER=""
TOKEN=""
BIN_URL=""
while [ "$#" -gt 0 ]; do
case "$1" in
--server) SERVER="$2"; shift 2 ;;
--token) TOKEN="$2"; shift 2 ;;
--bin-url) BIN_URL="$2"; shift 2 ;;
*) echo "未知参数:$1" >&2; exit 1 ;;
esac
done
if [ -z "$SERVER" ] || [ -z "$TOKEN" ]; then
echo "用法install-agent.sh --server https://panel.example.com --token TOKEN [--bin-url URL]" >&2
exit 1
fi
if [ "$(id -u)" -ne 0 ]; then
echo "请使用 root 用户运行" >&2
exit 1
fi
install -d /etc/lightops /usr/local/bin
if [ -z "$BIN_URL" ]; then
OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m)"
BIN_URL="$SERVER/downloads/lightops-agent-$OS-$ARCH"
fi
if [ -n "$BIN_URL" ]; then
curl -fsSL "$BIN_URL" -o /usr/local/bin/lightops-agent
chmod +x /usr/local/bin/lightops-agent
elif [ ! -x /usr/local/bin/lightops-agent ]; then
echo "未在 /usr/local/bin/lightops-agent 找到 lightops-agent 二进制文件"
echo "请先复制二进制文件,或传入 --bin-url https://.../lightops-agent"
exit 1
fi
cat >/etc/lightops/agent.toml <<EOF
server_url = "$SERVER"
token = "$TOKEN"
heartbeat_interval = 30
EOF
cat >/etc/systemd/system/lightops-agent.service <<'EOF'
[Unit]
Description=LightOps Agent
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/lightops-agent --config /etc/lightops/agent.toml
Restart=always
RestartSec=5
User=root
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now lightops-agent