Browse Source

got server side client registration working

afeiszli 4 years ago
parent
commit
2a4395014e

+ 1 - 1
compose/docker-compose.localserver.yml

@@ -21,6 +21,6 @@ services:
     ports:
       - "80:80"
     environment:
-      BACKEND_URL: "http://3.235.190.90:8081"
+      BACKEND_URL: "http://HOST_IP:8081"
 volumes:
   mongovol: {}

+ 1 - 1
compose/docker-compose.yml

@@ -44,7 +44,7 @@ services:
     ports:
       - "80:80"
     environment:
-      BACKEND_URL: "http://3.235.190.90:8081"
+      BACKEND_URL: "http://HOST_IP:8081"
   coredns:
     depends_on:
       - netmaker 

+ 1 - 0
config/dnsconfig/netmaker.hosts

@@ -0,0 +1 @@
+10.10.10.1       netmaker.default

+ 2 - 3
controllers/nodeGrpcController.go

@@ -3,7 +3,7 @@ package controller
 import (
 	"context"
 	"fmt"
-
+	"log"
 	"github.com/gravitl/netmaker/functions"
 	nodepb "github.com/gravitl/netmaker/grpc"
 	"github.com/gravitl/netmaker/models"
@@ -162,7 +162,7 @@ func (s *NodeServiceServer) CreateNode(ctx context.Context, req *nodepb.CreateNo
 	if err != nil {
 		return nil, status.Errorf(codes.NotFound, fmt.Sprintf("Could not find network: %v", err))
 	} else {
-		fmt.Println("Creating node in network " + network.NetID)
+		log.Println("Creating node in network " + network.NetID)
 	}
 
 	if !validKey {
@@ -356,7 +356,6 @@ func (s *NodeServiceServer) UpdateNode(ctx context.Context, req *nodepb.UpdateNo
 }
 
 func (s *NodeServiceServer) DeleteNode(ctx context.Context, req *nodepb.DeleteNodeReq) (*nodepb.DeleteNodeRes, error) {
-	fmt.Println("beginning node delete")
 	macaddress := req.GetMacaddress()
 	network := req.GetNetworkName()
 

+ 0 - 1
functions/helpers.go

@@ -46,7 +46,6 @@ func CreateServerToken(netID string) (string, error) {
 	}
         accessstringdec := address + "|"+ address + "|" + address + "|" + netID + "|" + accesskey.Value + "|" + privAddr
 
-	log.Println("Access String: " + accessstringdec)
 	accesskey.AccessString = base64.StdEncoding.EncodeToString([]byte(accessstringdec))
 
 	network.AccessKeys = append(network.AccessKeys, accesskey)

+ 4 - 5
main.go

@@ -10,7 +10,6 @@ import (
     "github.com/gravitl/netmaker/serverctl"
     "github.com/gravitl/netmaker/mongoconn"
     "github.com/gravitl/netmaker/functions"
-    "fmt"
     "os"
     "os/exec"
     "net"
@@ -33,12 +32,12 @@ func main() {
 		output, err := cmd.Output()
 
 		if err != nil {
-			fmt.Println("Error running 'id -u' for prereq check. Please investigate or disable client mode.")
+			log.Println("Error running 'id -u' for prereq check. Please investigate or disable client mode.")
 			log.Fatal(err)
 		}
 		i, err := strconv.Atoi(string(output[:len(output)-1]))
 		if err != nil {
-                        fmt.Println("Error retrieving uid from 'id -u' for prereq check. Please investigate or disable client mode.")
+                        log.Println("Error retrieving uid from 'id -u' for prereq check. Please investigate or disable client mode.")
 			log.Fatal(err)
 		}
 		if i != 0 {
@@ -146,8 +145,8 @@ func runGRPC(wg *sync.WaitGroup, installserver bool) {
         }()
         log.Println("Agent Server succesfully started on port " + grpcport + " (gRPC)")
 
-	if !installserver {
-			fmt.Println("Adding server to default network")
+	if installserver {
+			log.Println("Adding server to default network")
                         success, err := serverctl.AddNetwork("default")
                         if err != nil {
                                 log.Printf("Error adding to default network: %v", err)

+ 3 - 2
netclient/config/config.go

@@ -381,8 +381,9 @@ func GetCLIConfig(c *cli.Context) (ClientConfig, error){
                 cfg.Network = tokenvals[3]
                 cfg.Node.Network = tokenvals[3]
                 cfg.Server.AccessKey = tokenvals[4]
-                cfg.Node.LocalRange = tokenvals[5]
-
+                if len(tokenvals) > 5 {
+			cfg.Node.LocalRange = tokenvals[5]
+		}
 		if c.String("grpcserver") != "" {
 			cfg.Server.GRPCAddress = c.String("grpcserver")
 		}

+ 31 - 33
netclient/local/local.go

@@ -2,13 +2,13 @@ package local
 
 import (
         //"github.com/davecgh/go-spew/spew"
-        "github.com/gravitl/netmaker/netclient/config"
-	"fmt"
+	"errors"
+	"github.com/gravitl/netmaker/netclient/config"
+	"log"
         "io/ioutil"
 	"path/filepath"
         "io"
 	"strings"
-        "log"
         "os"
         "os/exec"
 )
@@ -19,7 +19,7 @@ func RunCmds(commands []string) error {
                 args := strings.Fields(command)
                 out, err := exec.Command(args[0], args[1:]...).Output()
                 if string(out) != "" {
-			fmt.Println(string(out))
+			log.Println(string(out))
 		}
                 if err != nil {
                         return err
@@ -72,13 +72,11 @@ func ConfigureSystemD(network string) error {
 	}
 	binarypath := dir  + "/netclient"
 
-	fmt.Println("Installing Binary from Path: " + binarypath)
-
 	_, err = os.Stat("/etc/netclient")
         if os.IsNotExist(err) {
                 os.Mkdir("/etc/netclient", 744)
         } else if err != nil {
-                fmt.Println("couldnt find or create /etc/netclient")
+                log.Println("couldnt find or create /etc/netclient")
                 return err
         }
 
@@ -184,23 +182,23 @@ WantedBy=timers.target
 
         err = cmdSysEnableService.Run()
         if  err  !=  nil {
-                fmt.Println("Error enabling [email protected]. Please investigate.")
-                fmt.Println(err)
+                log.Println("Error enabling [email protected]. Please investigate.")
+                log.Println(err)
         }
         err = cmdSysDaemonReload.Run()
         if  err  !=  nil {
-                fmt.Println("Error reloading system daemons. Please investigate.")
-                fmt.Println(err)
+                log.Println("Error reloading system daemons. Please investigate.")
+                log.Println(err)
         }
         err = cmdSysEnableTimer.Run()
         if  err  !=  nil {
-                fmt.Println("Error enabling netclient.timer. Please investigate.")
-                fmt.Println(err)
+                log.Println("Error enabling netclient.timer. Please investigate.")
+                log.Println(err)
         }
         err = cmdSysStartTimer.Run()
         if  err  !=  nil {
-                fmt.Println("Error starting netclient-"+network+".timer. Please investigate.")
-                fmt.Println(err)
+                log.Println("Error starting netclient-"+network+".timer. Please investigate.")
+                log.Println(err)
         }
 	return nil
 }
@@ -225,7 +223,7 @@ func RemoveSystemDServices(network string) error {
 
 	fullremove, err := isOnlyService(network)
 	if err != nil {
-		fmt.Println(err)
+		log.Println(err)
 	}
 
 	cmdSysDisableService := exec.Command("systemctl","disable","[email protected]")
@@ -234,43 +232,43 @@ func RemoveSystemDServices(network string) error {
         cmdSysStopTimer := exec.Command("systemctl", "stop", "netclient-"+network+".timer")
         cmdSysDisableTimer :=  exec.Command("systemctl", "disable", "netclient-"+network+".timer")
         if  err  !=  nil {
-                fmt.Println("Error stopping [email protected]. Please investigate.")
-                fmt.Println(err)
+                log.Println("Error stopping [email protected]. Please investigate.")
+                log.Println(err)
         }
 	if fullremove {
         err = cmdSysDisableService.Run()
         if  err  !=  nil {
-                fmt.Println("Error disabling [email protected]. Please investigate.")
-                fmt.Println(err)
+                log.Println("Error disabling [email protected]. Please investigate.")
+                log.Println(err)
         }
 	}
         err = cmdSysStopTimer.Run()
         if  err  !=  nil {
-                fmt.Println("Error stopping netclient-"+network+".timer. Please investigate.")
-                fmt.Println(err)
+                log.Println("Error stopping netclient-"+network+".timer. Please investigate.")
+                log.Println(err)
         }
         err = cmdSysDisableTimer.Run()
         if  err  !=  nil {
-                fmt.Println("Error disabling netclient-"+network+".timer. Please investigate.")
-                fmt.Println(err)
+                log.Println("Error disabling netclient-"+network+".timer. Please investigate.")
+                log.Println(err)
         }
 	if fullremove {
 	err = os.Remove("/etc/systemd/system/[email protected]")
 	}
 	err = os.Remove("/etc/systemd/system/netclient-"+network+".timer")
 	if err != nil {
-                fmt.Println("Error removing file. Please investigate.")
-                fmt.Println(err)
+                log.Println("Error removing file. Please investigate.")
+                log.Println(err)
 	}
         err = cmdSysDaemonReload.Run()
         if  err  !=  nil {
-                fmt.Println("Error reloading system daemons. Please investigate.")
-                fmt.Println(err)
+                log.Println("Error reloading system daemons. Please investigate.")
+                log.Println(err)
         }
         err = cmdSysResetFailed.Run()
         if  err  !=  nil {
-                fmt.Println("Error reseting failed system services. Please investigate.")
-                fmt.Println(err)
+                log.Println("Error reseting failed system services. Please investigate.")
+                log.Println(err)
         }
 	return err
 
@@ -301,13 +299,13 @@ func WipeLocal(network string) error{
         }
         err = cmdIPLinkDel.Run()
         if  err  !=  nil {
-                fmt.Println(err)
+                log.Println(err)
         }
         if nodecfg.PostDown != "" {
                 runcmds := strings.Split(nodecfg.PostDown, "; ")
                 err = RunCmds(runcmds)
                 if err != nil {
-                        fmt.Println("Error encountered running PostDown: " + err.Error())
+                        log.Println("Error encountered running PostDown: " + err.Error())
                 }
         }
         }
@@ -345,7 +343,7 @@ func copy(src, dst string) (int64, error) {
         }
 
         if !sourceFileStat.Mode().IsRegular() {
-                return 0, fmt.Errorf("%s is not a regular file", src)
+                return 0, errors.New(src + " is not a regular file")
         }
 
         source, err := os.Open(src)

+ 21 - 3
netclient/main.go

@@ -71,6 +71,13 @@ func main() {
             Value: 0,
             Usage: "Default PersistentKeepAlive for Peers in WireGuard Interface.",
         },
+        &cli.StringFlag{
+            Name:  "operatingsystem",
+            Aliases: []string{"os"},
+            EnvVars: []string{"NETCLIENT_OS"},
+            Value: "",
+            Usage: "Identifiable name for machine within Netmaker network.",
+        },
         &cli.StringFlag{
             Name:  "name",
             EnvVars: []string{"NETCLIENT_NAME"},
@@ -105,12 +112,17 @@ func main() {
             Usage: "WireGuard local network interface name.",
         },
         &cli.StringFlag{
-            Name:  "server",
-            Aliases: []string{"s"},
-            EnvVars: []string{"NETCLIENT_SERVER"},
+            Name:  "apiserver",
+            EnvVars: []string{"NETCLIENT_API_SERVER"},
             Value: "",
 	    Usage: "Address + GRPC Port (e.g. 1.2.3.4:50051) of Netmaker server.",
         },
+        &cli.StringFlag{
+            Name:  "grpcserver",
+            EnvVars: []string{"NETCLIENT_GRPC_SERVER"},
+            Value: "",
+            Usage: "Address + API Port (e.g. 1.2.3.4:8081) of Netmaker server.",
+        },
         &cli.StringFlag{
             Name:  "key",
             Aliases: []string{"k"},
@@ -179,6 +191,12 @@ func main() {
             Value: "on",
             Usage: "Installs daemon if 'on'. Ignores if 'off'. On by default.",
         },
+        &cli.StringFlag{
+            Name:  "roaming",
+            EnvVars: []string{"NETCLIENT_ROAMING"},
+            Value: "on",
+            Usage: "Checks for IP changes if 'on'. Ignores if 'off'. On by default.",
+        },
     }
 
     app.Commands = []*cli.Command{