netmaker-install-local.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #!/bin/sh
  2. set -x
  3. [ -z "$SERVER_DOMAIN" ] && echo "Need to set SERVER_DOMAIN (format: 1.2.3.4 or mybackend.com)" && exit 1;
  4. install() {
  5. docker volume create mongovol && docker run -d --name mongodb -v mongovol:/data/db -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=mongoadmin -e MONGO_INITDB_ROOT_PASSWORD=mongopass mongo
  6. echo "Giving Mongo Time to Start"
  7. sleep 10
  8. echo "Installing Netmaker API"
  9. mkdir -p /etc/netmaker/config/environments
  10. mkdir -p /etc/netmaker/config/dnsconfig
  11. cp ../netmaker /etc/netmaker/netmaker
  12. chmod +x /etc/netmaker/netmaker
  13. cat >/etc/netmaker/config/environments/dev.yaml<<EOL
  14. server:
  15. host: "$SERVER_DOMAIN"
  16. apiport: "8081"
  17. grpcport: "50051"
  18. masterkey: "secretkey"
  19. allowedorigin: "*"
  20. restbackend: true
  21. agentbackend: true
  22. defaultnetname: "default"
  23. defaultnetrange: "10.10.10.0/24"
  24. createdefault: true
  25. mongoconn:
  26. user: "mongoadmin"
  27. pass: "mongopass"
  28. host: "127.0.0.1"
  29. port: "27017"
  30. opts: '/?authSource=admin'
  31. EOL
  32. cat >/etc/netmaker/config/dnsconfig/Corefile<<EOL
  33. . {
  34. hosts ./root/netmaker.hosts {
  35. fallthrough
  36. }
  37. forward . 8.8.8.8 8.8.4.4
  38. log
  39. }
  40. EOL
  41. cat >/etc/systemd/system/netmaker.service<<EOL
  42. [Unit]
  43. Description=Netmaker Server
  44. After=network.target
  45. [Service]
  46. Type=simple
  47. Restart=on-failure
  48. WorkingDirectory=/etc/netmaker
  49. ExecStart=/etc/netmaker/netmaker
  50. [Install]
  51. WantedBy=multi-user.target
  52. EOL
  53. systemctl daemon-reload
  54. systemctl start netmaker.service
  55. sudo docker pull coredns/coredns
  56. sudo docker pull gravitl/netmaker-ui:v0.3
  57. systemctl stop systemd-resolved
  58. systemctl disable systemd-resolved
  59. echo "Running CoreDNS"
  60. sudo docker run -d --name coredns --restart=always --volume=/etc/netmaker/config/dnsconfig/:/root/ -p 53:53/udp coredns/coredns -conf /root/Corefile
  61. echo "Running UI"
  62. sudo docker run -d --name netmaker-ui -p 80:80 -e BACKEND_URL="http://$SERVER_DOMAIN:8081" gravitl/netmaker-ui:v0.3
  63. echo "Setup Complete"
  64. }
  65. cleanup() {
  66. sudo docker kill mongodb || true
  67. sudo docker rm mongodb || true
  68. sudo docker volume rm mongovol || true
  69. sudo docker kill coredns || true
  70. sudo docker rm coredns || true
  71. sudo docker kill netmaker-ui || true
  72. sudo docker rm netmaker-ui || true
  73. sudo netclient -c remove -n default || true
  74. sudo rm -rf /etc/systemd/system/netmaker.service || true
  75. sudo rm -rf /etc/netmaker || true
  76. sudo systemctl enable systemd-resolved
  77. sudo systemctl start systemd-resolved
  78. sleep 5
  79. sudo systemctl restart systemd-resolved
  80. }
  81. trap cleanup ERR
  82. cleanup
  83. install