fix: use bundled python3.10 in systemd, patch paths after move
This commit is contained in:
parent
a6359beb61
commit
8b49978ea1
1 changed files with 17 additions and 7 deletions
|
|
@ -138,6 +138,9 @@ func InstallNode(node state.Node, apiToken, apiHost, labels string) error {
|
||||||
os.RemoveAll(instanceDir)
|
os.RemoveAll(instanceDir)
|
||||||
os.Rename(DeployTo, instanceDir)
|
os.Rename(DeployTo, instanceDir)
|
||||||
|
|
||||||
|
// 8. Patch hardcoded /opt/wallarm paths
|
||||||
|
patchPaths(instanceDir)
|
||||||
|
|
||||||
// 9. Set up systemd service
|
// 9. Set up systemd service
|
||||||
GenerateSystemdTemplate()
|
GenerateSystemdTemplate()
|
||||||
svc := "wallarm-node@" + node.Name
|
svc := "wallarm-node@" + node.Name
|
||||||
|
|
@ -182,25 +185,23 @@ func CreateNodesDir() error { return os.MkdirAll(BaseDir, 0755) }
|
||||||
|
|
||||||
func GenerateSystemdTemplate() error {
|
func GenerateSystemdTemplate() error {
|
||||||
tmpl := `/etc/systemd/system/wallarm-node@.service`
|
tmpl := `/etc/systemd/system/wallarm-node@.service`
|
||||||
if _, err := os.Stat(tmpl); err == nil {
|
|
||||||
return nil // already exists
|
|
||||||
}
|
|
||||||
content := fmt.Sprintf(`[Unit]
|
content := fmt.Sprintf(`[Unit]
|
||||||
Description=Wallarm Node - %%i
|
Description=Wallarm Node - %%i
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=forking
|
Type=simple
|
||||||
WorkingDirectory=%s/%%i/wallarm
|
WorkingDirectory=%s/%%i/wallarm
|
||||||
ExecStart=/bin/bash %s/%%i/wallarm/supervisord.sh start
|
EnvironmentFile=-%s/%%i/wallarm/env.list
|
||||||
ExecStop=/bin/bash %s/%%i/wallarm/supervisord.sh stop
|
ExecStart=%s/%%i/wallarm/usr/bin/python3.10 %s/%%i/wallarm/usr/bin/supervisord -c %s/%%i/wallarm/etc/supervisord.conf
|
||||||
|
ExecStop=%s/%%i/wallarm/usr/bin/python3.10 %s/%%i/wallarm/usr/bin/supervisord -c %s/%%i/wallarm/etc/supervisord.conf shutdown
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=5
|
RestartSec=5
|
||||||
User=root
|
User=root
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
`, BaseDir, BaseDir, BaseDir)
|
`, BaseDir, BaseDir, BaseDir, BaseDir, BaseDir, BaseDir, BaseDir, BaseDir)
|
||||||
os.WriteFile(tmpl, []byte(content), 0644)
|
os.WriteFile(tmpl, []byte(content), 0644)
|
||||||
exec.Command("systemctl", "daemon-reload").Run()
|
exec.Command("systemctl", "daemon-reload").Run()
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -255,3 +256,12 @@ func killPort(port string) {
|
||||||
fmt.Printf(" Killed existing process on port %s\n", port)
|
fmt.Printf(" Killed existing process on port %s\n", port)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func patchPaths(dir string) {
|
||||||
|
exec.Command("sed", "-i", fmt.Sprintf("s|/opt/wallarm|%s|g", dir),
|
||||||
|
filepath.Join(dir, "env.list")).Run()
|
||||||
|
exec.Command("find", dir, "-name", "*.sh", "-exec",
|
||||||
|
"sed", "-i", fmt.Sprintf("s|/opt/wallarm|%s|g", dir), "{}", ";").Run()
|
||||||
|
exec.Command("sed", "-i", fmt.Sprintf("s|/opt/wallarm|%s|g", dir),
|
||||||
|
filepath.Join(dir, "etc", "supervisord.conf")).Run()
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue