diff --git a/cmd/meta_cli/main.go b/cmd/meta_cli/main.go index 9782b5f..a357991 100644 --- a/cmd/meta_cli/main.go +++ b/cmd/meta_cli/main.go @@ -7,7 +7,6 @@ import ( configuration "git.g3e.fr/syonad/two/internal/config/agent" "git.g3e.fr/syonad/two/internal/load_db/nocloud" "git.g3e.fr/syonad/two/pkg/db/kv" - "git.g3e.fr/syonad/two/pkg/systemd" ) func main() { @@ -23,8 +22,6 @@ func main() { flag.Parse() - service, _ := systemd.New() - conf, err := configuration.LoadConfig(*conf_file) if err != nil { fmt.Println(err) @@ -46,9 +43,7 @@ func main() { Password: *password, SSHKEY: *ssh_key, }, db) - service.Start("metadata@" + *vm_name) } else if *stop { nocloud.UnLoadNoCloudInDB(*vm_name, db) - service.Stop("metadata@" + *vm_name) } } diff --git a/systemd/metadata@.service b/systemd/metadata_service/metadata@.service similarity index 69% rename from systemd/metadata@.service rename to systemd/metadata_service/metadata@.service index 626b97c..54cf08a 100644 --- a/systemd/metadata@.service +++ b/systemd/metadata_service/metadata@.service @@ -4,7 +4,7 @@ After=network.target [Service] Type=simple -ExecStart=/opt/two/bin/metadata --vm %i +ExecStart=/usr/local/bin/run-metadata-in-netns.sh %i [Install] WantedBy=multi-user.target \ No newline at end of file diff --git a/systemd/metadata_start/run-metadata-in-netns.sh b/systemd/metadata_start/run-metadata-in-netns.sh new file mode 100644 index 0000000..612dd18 --- /dev/null +++ b/systemd/metadata_start/run-metadata-in-netns.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e + +# Expects one argument: netns_bridge (e.g. vpc-00003_br-00002 or vpc1_br0) +arg="$1" +NETNS="${arg%%_*}" +ip_port="${arg#*_}" +IP="${ip_port%%-*}" +PORT="${ip_port#*-}" + +echo "start metadata ${NETNS} " + +exec ip netns exec "${NETNS}" \ + /usr/bin/metadata \ + -file "/opt/metadata/${arg}.conf" \ + -interface "${IP}" \ + -port "${PORT}" \ No newline at end of file