feat: establish Chenglu persistent agent runtime
This commit is contained in:
commit
5aa396ac7b
17 changed files with 450 additions and 0 deletions
32
install.sh
Executable file
32
install.sh
Executable file
|
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
if [[ ${EUID} -ne 0 ]]; then echo "run as root" >&2; exit 1; fi
|
||||
|
||||
source_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||
id chenglu-agent >/dev/null 2>&1 || useradd --system --home /var/lib/chenglu-agent --shell /usr/sbin/nologin chenglu-agent
|
||||
install -d -m 0755 /opt/chenglu-agent /opt/chenglu-agent/src
|
||||
install -d -m 0700 /etc/chenglu-agent
|
||||
install -d -o chenglu-agent -g chenglu-agent -m 0700 /var/lib/chenglu-agent
|
||||
install -m 0644 "$source_dir"/src/*.js /opt/chenglu-agent/src/
|
||||
install -m 0644 "$source_dir"/package.json "$source_dir"/IDENTITY.hdlp /opt/chenglu-agent/
|
||||
install -m 0644 "$source_dir"/systemd/chenglu-agent.service "$source_dir"/systemd/chenglu-daily.service "$source_dir"/systemd/chenglu-daily.timer /etc/systemd/system/
|
||||
|
||||
if [[ ! -f /etc/chenglu-agent/identity.key ]]; then
|
||||
openssl genpkey -algorithm ED25519 -out /etc/chenglu-agent/identity.key
|
||||
openssl pkey -in /etc/chenglu-agent/identity.key -pubout -out /etc/chenglu-agent/identity.pub
|
||||
fi
|
||||
chown root:chenglu-agent /etc/chenglu-agent/identity.key /etc/chenglu-agent/identity.pub
|
||||
chmod 0640 /etc/chenglu-agent/identity.key
|
||||
chmod 0644 /etc/chenglu-agent/identity.pub
|
||||
touch /etc/chenglu-agent/secrets.env
|
||||
chown root:chenglu-agent /etc/chenglu-agent/secrets.env
|
||||
chmod 0640 /etc/chenglu-agent/secrets.env
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now chenglu-agent.service chenglu-daily.timer
|
||||
systemctl restart chenglu-agent.service
|
||||
systemctl is-active --quiet chenglu-agent.service
|
||||
systemctl is-active --quiet chenglu-daily.timer
|
||||
echo CHENGLU_AGENT_INSTALLED
|
||||
|
||||
Loading…
Reference in a new issue