USG Konfiguration am Unifi Controller ablegen

In den letzten Blog-Einträgen habe ich beschrieben, wie man am Unifi USG Einstellungen vornehmen kann, die über den Unifi Controller nicht möglich sind. Diese Änderungen sind jedoch nicht permanent und werden bei der nächsten Provisionierung des USG überschrieben. Damt das nicht passiert, kann man die manuell erzeugten Teile der Konfiguration exportieren und am Unifi Controller ablegen, damit diese beim Provisionieren auch auf das USG geschrieben werden.

Dabei ist jedoch mit extemer Vorsicht vorzugehen, wenn man hier etwas falsch macht und das USG die gesendete Konfiuration nicht verarbeiten kann, wird das unweigerlich zu Problemen führen!

Der Export erfolgt über SSH direkt am USG

admin@usg-irgendwo:~$ mca-ctrl -t dump-cfg > x.txt
admin@usg-irgendwo:~$

Aus dem mehr oder weniger langen JSON-File kopiert man sich den Teil heraus, den man am Controller ablegen möchte, in meinem Fall z.B. die DynDNS-Settings:

"service": {
  "dns": {
    "dynamic": {
      "interface": {
        "eth0": {
          "service": {
            "noip1": {
              "host-name": [ "hostname1.ddns.net" ],
              "login": "adresse@domain.tld",
              "password": "P@55w.rd,
              "protocol": "noip",
              "server": "dynupdate.no-ip.com"
            },
            "noip2": {
              "host-name": [ "hostname2.ddns.net" ],
              "login": "adresse@domain.tld",
              "password": "P@55w.rd",
              "protocol": "noip",
              "server": "dynupdate.no-ip.com"
            }
          },
          "web": "dyndns"
        }
      }
    }
  }
}

Die am Controller zu erstellende JSON Datei muss in folgendem Folder abgelegt werden: <unifi_base>/data/sites/site_ID

<unifi-base> ist das Verzeichnis, in dem der Controller installiert wurde, bei meiner Installation unter Windows ist das "C:\Users\<Username>\Ubiquiti UniFi". Der komplette Pfad lautet unter Windows also "C:\Users\<Username>\Ubiquiti UniFi\data\sites\default", sofern man die Default-Site verwendet, andernfalls ist als letzte Ebene der Name der Site zu verwenden. 

Das Verzeichnis einfach anlegen hat bei mir nicht funktioniert, die Konfiguration wurde beim Provisionieren nicht an das USG gesendet. Im Unifi Forum habe ich dann gelesen, dass man einen Floorplan erstellen muss, dann werden alle Verzeichnisse richtig erzeugt. Des geschieht im Unifi-Controller am Reiter Maps:

Ich habe einen neuen Floorplan erstellt und wieder gelöscht, dann waren die Verzeichnisse vorhanden.

Im Verzeichnis "C:\Users\<Username>\Ubiquiti UniFi\data\sites\default" nun eine Datei mit dem Namen "config.gateway.json" mit folgendem Inhalt erstellen:

{
  "service": {
    <hier den aus dem x.txt herauskopierten Inhalt einfügen>
  }
}

Die config.gateway.json sollte dann so aussehen:

{
  "service": {
    "service": {
      "dns": {
        "dynamic": {
          "interface": {
            "eth0": {
              "service": {
                "noip1": {
                  "host-name": [ "hostname1.ddns.net" ],
                  "login": "adresse@domain.tld",
                  "password": "P@55w.rd",
                  "protocol": "noip",
                  "server": "dynupdate.no-ip.com"
                },
                "noip2": {
                  "host-name": [ "hostname2.ddns.net" ],
                  "login": "adresse@domain.tld",
                  "password": "P@55w.rd",
                  "protocol": "noip",
                  "server": "dynupdate.no-ip.com"
                }
              },
              "web": "dyndns"
            }
          }
        }
      }
    }
  }
}

Wenn man damit fertig ist, am Besten die Syntax mit einem JSON Formatter (z.B. https://jsonformatter.curiousconcept.com/) überprüfen, bevor das USG mit der neuen Konfiguration provisioniert wird. Bei zukünftigen Konfigurationsänderungen über den Unifi Controller werden diese Settings nun berücksichtigt.

Kommentare sind geschlossen