main.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/gravitl/netmaker/netclient/functions"
  5. "golang.zx2c4.com/wireguard/wgctrl"
  6. nodepb "github.com/gravitl/netmaker/grpc"
  7. "flag"
  8. "os"
  9. "log"
  10. )
  11. const (
  12. // name of the service
  13. name = "wcdaemon"
  14. description = "Wirecat Daemon Service"
  15. )
  16. var password string
  17. var group string
  18. var server string
  19. var accesskey string
  20. var (
  21. wgclient *wgctrl.Client
  22. )
  23. var (
  24. wcclient nodepb.NodeServiceClient
  25. )
  26. func main() {
  27. tpassword := flag.String("p", "changeme", "This node's password for accessing the server regularly")
  28. taccesskey := flag.String("k", "badkey", "an access key generated by the server and used for one-time access (install only)")
  29. tserver := flag.String("s", "localhost:50051", "The location (including port) of the remote gRPC server.")
  30. tgroup := flag.String("g", "badgroup", "The node group you are attempting to join.")
  31. tnoauto := flag.Bool("na", false, "No auto mode. If true, netmaker will not be installed as a system service and you will have to retrieve updates manually via checkin command.")
  32. command := flag.String("c", "required", "The command to run")
  33. flag.Parse()
  34. switch *command {
  35. case "required":
  36. fmt.Println("command flag 'c' is required. Pick one of |install|checkin|update|remove|")
  37. os.Exit(1)
  38. log.Fatal("Exiting")
  39. case "install":
  40. fmt.Println("Beginning agent installation.")
  41. err := functions.Install(*taccesskey, *tpassword, *tserver, *tgroup, *tnoauto)
  42. if err != nil {
  43. fmt.Println("Error installing: ", err)
  44. fmt.Println("Cleaning up (uninstall)")
  45. err = functions.Remove()
  46. if err != nil {
  47. fmt.Println("Error uninstalling: ", err)
  48. fmt.Println("Wiping local.")
  49. err = functions.WipeLocal()
  50. if err != nil {
  51. fmt.Println("Error removing artifacts: ", err)
  52. }
  53. err = functions.RemoveSystemDServices()
  54. if err != nil {
  55. fmt.Println("Error removing services: ", err)
  56. }
  57. }
  58. os.Exit(1)
  59. }
  60. case "service-install":
  61. fmt.Println("Beginning service installation.")
  62. err := functions.ConfigureSystemD()
  63. if err != nil {
  64. fmt.Println("Error installing service: ", err)
  65. os.Exit(1)
  66. }
  67. case "service-uninstall":
  68. fmt.Println("Beginning service uninstall.")
  69. err := functions.RemoveSystemDServices()
  70. if err != nil {
  71. fmt.Println("Error installing service: ", err)
  72. os.Exit(1)
  73. }
  74. case "checkin":
  75. fmt.Println("Beginning node check in.")
  76. err := functions.CheckIn()
  77. if err != nil {
  78. fmt.Println("Error checking in: ", err)
  79. os.Exit(1)
  80. }
  81. case "remove":
  82. fmt.Println("Beginning node cleanup.")
  83. err := functions.Remove()
  84. if err != nil {
  85. /*
  86. fmt.Println("Error uninstalling: ", err)
  87. fmt.Println("Wiping local.")
  88. err = functions.WipeLocal()
  89. if err != nil {
  90. fmt.Println("Error removing artifacts: ", err)
  91. }
  92. err = functions.RemoveSystemDServices()
  93. if err != nil {
  94. fmt.Println("Error removing services: ", err)
  95. }
  96. */
  97. fmt.Println("Error deleting node: ", err)
  98. os.Exit(1)
  99. }
  100. }
  101. fmt.Println("Command " + *command + " Executed Successfully")
  102. }