Automatische Bereitstellung einer neuen Looker-Instanz

Optional können Sie beim Start einer neuen Looker-Instanz die Instanz automatisch mit einem Lizenzschlüssel, einer Host-URL und einem anfänglichen Nutzerkonto bereitstellen.

Neue Instanz automatisch mit einem E-Mail-Nutzer bereitstellen

Beim ersten Start sucht Looker nach einer Datei mit dem Namen provision.yml im Verzeichnis looker, in dem sich die JAR-Datei befindet. Das Format für diese Datei ist:

license_key: "1234-5678-ABCD-EFGH-IJKL"
host_url: "https://looker.mycompany.com"
user:
  first_name: "Katie"
  last_name: "Woolsey"
  email: "kwoolsey@benaventi.com"
  password: "password123"

Wenn die Looker-Instanz neu ist und noch nicht eingerichtet wurde, wird sie mit dem angegebenen Lizenzschlüssel und einem Nutzerkonto mit den bereitgestellten Informationen bereitgestellt.

Wenn Looker bereits bereitgestellt wurde, werden durch den Lizenzschlüssel und die Host-URL die Werte überschrieben, die aktuell festgelegt sind. Die Nutzerinformationen werden ignoriert. Dies ist nützlich, um eine Staging-Instanz von Looker mit einer neuen Kopie einer internen Datenbank einer Produktionsinstanz zu aktualisieren, während gleichzeitig ein separater Lizenzschlüssel und eine separate URL für den Staging-Server beibehalten werden.

Neue Instanz automatisch mit einem API-Nutzer bereitstellen

Beim Start einer neuen Looker-Instanz können Sie einen ersten API-Nutzer programmatisch bereitstellen. Sie können einen API-Nutzer ODER einen E-Mail-Nutzer bereitstellen, aber Looker unterstützt die gleichzeitige Bereitstellung eines API-Nutzers und eines E-Mail-Nutzers nicht.

API-Anmeldedaten werden generiert

Generieren Sie zum Bereitstellen eines API-Nutzers eine Client-ID und einen Clientschlüssel, die von Looker gelesen und in der Datenbank gespeichert werden. Für diese Anmeldedaten gelten folgende Voraussetzungen:

  • Die Client-ID muss 20 Zeichen lang sein.
  • Der Clientschlüssel muss 24 Zeichen lang sein.
  • Beide Strings müssen im Text einer POST-Anfrage enthalten sein können. Wir empfehlen daher, nur alphanumerische Zeichen zu verwenden.

Beispielsweise verwendet Looker den folgenden Code, um diese Anmeldedaten programmatisch zu generieren:

require 'securerandom'

TOKEN_SYMBOLS = "bcdfghjkmnpqrstvwxyzBCDFGHJKMNPQRSTVWXYZ23456789".freeze

def generate_token(size)
  Array.new(size).map { TOKEN_SYMBOLS[SecureRandom.random_number(TOKEN_SYMBOLS.size)] }.join
end

Der obige Code vermeidet uneindeutige Zeichen, um die Strings weniger fehleranfällig zu machen.

Sie können auch geeignete Strings mit dem Befehl openssl generieren:

openssl rand -hex 10

Die Zahl am Ende des Befehls openssl ist die Anzahl der Byte im String. Verwenden Sie daher 10 für die Client-ID und 12 für den Clientschlüssel.

API-Nutzer wird bereitgestellt

Wenn Sie einen API-Nutzer beim Start bereitstellen möchten, benötigen Sie eine provision.yml-Datei, die Ihren Lizenzschlüssel und Ihre Host-URL im Verzeichnis looker enthält. Beispiel:

license_key: "1234-5678-ABCD-EFGH-IJKL"
host_url: "https://looker.mycompany.com"

Erstellen Sie im Verzeichnis looker eine Datei namens api-provision.yml mit den Berechtigungen 0600, die die API-Nutzerinformationen enthält. Beispiel:

user:
  first_name: "Katie"
  last_name: "Woolsey"
  client_id: "M9hZb8vRh9bSZzdPxw42"
  client_secret: "NMnqBVbHqPsPzTvbZk6xZfV3"

Wir empfehlen, diese Anmeldedaten in einem geheimen Manager außerhalb dieser Datei zu speichern, da diese Datei beim Start entfernt wird, sobald die Looker-Instanz den Nutzer in der Datenbank verarbeitet und erstellt hat.

Wenn die Instanz beim Start leer ist und keine Nutzer vorhanden sind, erstellt Looker einen Looker Admin API-Nutzer mit diesen Anmeldedaten und entfernt die Datei api-provision.yml vom Laufwerk.

Sie haben dann 30 Minuten Zeit, um mit diesen Anmeldedaten eine zusätzliche Bereitstellung durchzuführen. Anschließend werden die Anmeldedaten aus der internen Datenbank entfernt und können nicht mehr verwendet werden. Wenn Sie diese ersten Anmeldedaten entfernen, wird keine langlebige Backdoor für die Anwendung erstellt und der vorgesehene Anwendungsfall wird ausschließlich auf die Bereitstellung beschränkt.